【发布时间】:2020-01-23 15:07:53
【问题描述】:
我想用 XMLStarlet 解析 html document,这在过去运行良好,但由于底层内容生成器的更改不断抛出错误。
我现在收到两打以上的错误消息,例如
-: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
我假设还有另一个命名空间冲突。
【问题讨论】:
-
这与标签batch-file有什么关系?
标签: html batch-file command-line xml-parsing xmlstarlet