(x) HTML: парсинг причудливых тегов - PullRequest
1 голос
/ 13 октября 2010

Я создаю свой собственный скромный (x) HTML-парсер.Все в порядке, но некоторые теги doctype ломают его.Позвольте мне показать вам:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd" [
<!ENTITY D "&#x2014;">
<!ENTITY o "&#x2018;">
<!ENTITY c "&#x2019;">
<!ENTITY O "&#x201C;">
<!ENTITY C "&#x201D;">
]>

Насколько я знаю, никакие другие типы тегов не могут быть вложены таким образом (я имею в виду внутри имени тега), т.е.xml инструкции и теги комментариев.

Мой вопрос: что вы можете сказать по этому поводу.Это выглядит так против здравого смысла для меня.И, конечно, это совершенно справедливо в отношении XML.

Спасибо!

Ответы [ 2 ]

3 голосов
/ 13 октября 2010

Объявление Doctype не является тегом, поэтому оно не соответствует правилам синтаксиса для тегов.Это хорошо указано , хотя.(Хитрость в создании парсера заключается в том, чтобы начать со спецификации, а не с примеров документов)

1 голос
/ 13 октября 2010

Ух ты, это то, что ты не видишь каждый день.Подобный код ведет свои корни вплоть до SGML.У SGML было много разных интересных вещей, которые мы используем сегодня: <![CDATA[, <?xml version="1.0"?> и даже открывающие / закрывающие "теги" PHP: <?php ... ?>.

В общем, не о чем беспокоиться.Это всего лишь серия инструкций для синтаксического анализатора, хотя вам может быть лучше выполнить то же самое с помощью других средств.Сохраняйте спокойствие и продолжайте.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...