Можно обработать XHTML с саксонским? - PullRequest
2 голосов
/ 26 января 2012

Я могу использовать xmllint и обрабатывать ввод HTML / XHTML с XPath 1.0.Например:

xmllint --xpath "//title" --html http://www.w3.org/TR/xslt20/ 2>/dev/null

ожидаемые выходные данные, но с саксонским:

java -cp /usr/share/java/saxon9he.jar net.sf.saxon.Query -s:"http://www.w3.org/TR/xslt20/" -qs:"//title"

без результатов.
При запуске по HTTPподключение к документу сбрасывается через 2 минуты, а в локальном документе оно завершается без результата через пару минут обработки

В саксонской документации Я не могу найти ничего, связанного с обработкой документов XHTML


Я нашел этот вопрос: Пространство имен Saxon Xpath , и я обновляю вопрос с дополнительной информацией:

Вот пример xmllint без использования парсера html (нет--html переключатель):

xmllint --xpath "//*[local-name()='title'][namespace-uri()='http://www.w3.org/1999/xhtml']" http://www.w3.org/TR/xslt20/

, который выводит:

<title>XSL Transformations (XSLT) Version 2.0</title>

Снова с использованием Saxon:

java -cp /usr/share/java/saxon9he.jar net.sf.saxon.Query -s:"http://www.w3.org/TR/xslt20/" -qs:"//*[local-name()='title'][namespace-uri()='http://www.w3.org/1999/xhtml']"

Нет результатов

1 Ответ

0 голосов
/ 26 января 2012

XHTML-документ является XML-документом, поэтому его можно обрабатывать так же, как и любой другой XML-документ.Обратите внимание, что если это XHTML, то большинство элементов, скорее всего, находятся в пространстве имен, и вам необходимо это учитывать.Установка пространства имен XHTML в качестве пространства имен по умолчанию может быть полезно (хотя, к сожалению, в XQuery это также делает его пространством имен по умолчанию для вывода - XSLT делает это лучше).

Обычно документы XHTML содержат ссылку наDTD XHTML на сервере W3C и за последний год W3C перестали отвечать на запросы на получение этого ресурса, поскольку они не могут справиться с нагрузкой.Это означает, что вы можете столкнуться с длительными задержками и ошибками ввода-вывода.В ответ на это Saxon 9.4 включает локальную копию DTD XHTML и удовлетворяет запросы из своей локальной копии.В более ранних выпусках вы можете добиться того же эффекта, используя каталоги OASIS.

...