XSLT и XQuery при неверном вводе html, части URI выглядят как объекты - PullRequest
0 голосов
/ 18 мая 2009

Я использую Saxon 9 для анализа неверных источников HTML. В частности, html имеет значения href, такие как:

немного текста

Я получаю ошибки:

"Ошибка, сообщаемая анализатором XML: ссылка на сущность" g_varID "должна заканчиваться на ';' Разделитель ".

Анализатор xml читает строку "& g_varID" и жалуется, что должен быть символ ";" разграничить сущность. Но, конечно, это не предназначено для HTML-сущности - это просто часть URI.

Как я могу сказать парсеру игнорировать его? Примечание. Я использую Saxon без схемы, а не Saxon-SA.

Ответы [ 3 ]

3 голосов
/ 18 мая 2009

Если ваш HTML не является XML, то как вы ожидаете, что его обработает какой-либо процессор XML?

1 голос
/ 18 мая 2009

Убедитесь, что у вас правильный xhtml DOCTYPE. В соответствии с xhtml1-strict.dtd, на который я смотрю, атрибут href объявляется как CDATA, а не PCDATA, что означает буквальное значение и совершенно нормально и не должно анализироваться как сущность.

0 голосов
/ 22 января 2013

Как уже упоминалось выше, это не правильный XML, это HTML. Эта конкретная проблема, однако, является той, которую HTML-прибор убирает по умолчанию: http://www.w3.org/People/Raggett/tidy/. Используйте его со следующими аргументами командной строки для преобразования HTML в XHTML:

tidy -asxhtml foo.html > foo.xhtml

И тогда вы сможете запустить его через XSLT.

...