在网页上使用 xmlstarlet 时,我大部分时间都面临实体引用错误。这使得它无法从网页中提取。
由于 html 页面不是格式良好的 XML(是否有一些选项也可以处理 html?)我将它们转换为
tidy -asxhtml
到 XHTML,其中 tidy put 声明
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
然后在用 xmlstarlet 处理之后
curl http://www.xfree86.org/current/index.html | tidy -asxhtml | \
xmlstarlet sel --net -T -t -m hr -v . -
它总是抛出相同的错误
-:13: parser error : Entity 'reg' not defined
<h1>Documentation for XFree86® version 4.8.0</h1>
有谁知道如何让 xmlsttarlet 知道实体参考文件。