LINUX.ORG.RU

html-entities

 ,


0

1

Парсю небольшой кусок хтмла с python.sax, начались проблемы с сабжем, притом довольно избирательные: > например парситься нормально, а на   падает с «SAXParseException: <unknown>:29:3: undefined entity». Попробовал сделать кусок документа валидным, обернув в

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head></head>
<body>
...
</body></html>
- работает, но аж две минуты почему-то (скачивается dtd?). С доктайпом «html» всё тоже падает.

Насколько, я понимаю, можно добавить

<!DOCTYPE[ 
<!ENTITY nbsp "&#160;"> 
]>
, но мне не хочется перебирать их все. Как нормально указать парсеру как ресолвить стандартные хтмл-сущности?

XML парсер? В XML есть по дефолту только lt, gt и quot. Скорми ему все объявления. У Оперы, например, такой файл есть в «/usr/share/opera/html40_entities.dtd».

Deleted
()

скачивается dtd

Опции навроде nonet нет? Не пользуюсь питоном, так что…

Deleted
()
Ответ на: комментарий от Kalashnikov

Костыльно

Если парсер XML'ный, то это как бы Ъ вей, ничего не поделать, т.к. в XML такие entity вообще не должны попадаться в принципе (^ ^)

Deleted
()
Ответ на: комментарий от Deleted

Ну, эээ… по дефолту. XML это всё же общая разметка.

Deleted
()

just my 5 cents - sax актуален если тебе важна производительность, или документ, который ты парсишь, очень большой... для всего остального есть lxml или beautifulsoup (если html совсем плохой), или regexp'ы (если он вообще ни разу не валидный, но структура сохраняется и данные вытащить всё-таки хочется)

ei-grad ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.