Я бы хотел проанализировать HTML-документ с XMLStarlet, который хорошо работал в прошлом, но из-за изменений в базовом генераторе контента продолжает выдавать ошибки.
Теперь я получаюболее двух десятков сообщений об ошибках, таких как
-:157.22: Namespace prefix xlink for href on use is not defined
<use xlink:href="#menu"/>
из-за недавно встроенных SVG-изображений, содержащих use xlink:href
теги.Соответствующее пространство имен для префикса xlink должно быть "http://www.w3.org/1999/xlink",, которое я добавил в сегмент команды на первом шаге
(...) | xml.exe sel -N n="http://www.w3.org/1999/xlink" -t -v "/html/body/div/div/div/main/ul/li[1]/h2/a/@href"
, но, очевидно, я этого не сделалвсе верно, так как ошибки остаются. Я не вижу ни одного объявления пространства имен в сгенерированном содержимом сайта.
Как исправить ошибки?
Обновление
Полная команда, над которой я работаю:
wget -qO- "https://notepad-plus-plus.org/downloads/" | xml fo -H -Q | xml.exe sel -t -v "/html/body/div/div/div/main/ul/li[1]/h2/a/@href"
Нерегулярно я также получаю следующее сообщение об ошибке:
Attempt to load network entity http://www.w3.org/TR/REC-html40/loose.dtd
-:3.1: Start tag expected, '<' not found
Я предполагаю, что есть еще один конфликт пространства имен.