Я могу использовать xmllint
и обрабатывать вход HTML/XHTML с XPath 1.0. Например:Возможно ли обработать XHTML с саксоном?
xmllint --xpath "//title" --html http://www.w3.org/TR/xslt20/ 2>/dev/null
выходов ожидается, но с Saxon:
java -cp /usr/share/java/saxon9he.jar net.sf.saxon.Query -s:"http://www.w3.org/TR/xslt20/" -qs:"//title"
никаких результатов.
Если набегать соединение HTTP документа сбрасывается через 2 мин, а на локальном документе он выходит без результата после пары минут о обработке
В Saxon documentation я не могу найти ничего, связанные с обработкой XHTML документов
Я нашел этот вопрос: Saxon Xpath namespace и я обновляя вопрос с дополнительной информацией:
Вот 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']"
Нет результатов
Несомненно, это возможно, если это хорошо сформированный XML (т. Е. На самом деле действительный XHTML). Одна заметка: элементы XHTML находятся в пространстве имен ('http: // www.w3.org/1999/xhtml'). Убедитесь, что вы указали пространство имен. –
'http: // www.w3.org/TR/xslt20 /' * является * исходным документом XHTML. Он проходит тестовый XML-тест HTML, и он сгенерирован с ним, так как его можно легко проверить. – theta
Я думаю, вы пропустили то, что я вставил. Это не та же строка: 'http: // www.w3.org/1999/xhtml'. Вы никогда не будете сопоставлять что-либо с '// title', потому что оно не учитывает пространство имен. –