我有一个由现有工具生成的
HTML页面 – 我无法更改此工具的输出.
但是,我想使用xmllint和–xpath选项从下载的网页中选择一些特定的信息.问题是该页面以:
< html lang = en>< head> …
并且xmllint几乎立即抛出错误:
html.out:2: parser error : AttValue: " or ' expected <html lang=en><head> ^
这个问题肯定似乎是围绕lang属性值的缺失的引号.整个页面都充满了这类问题. (虽然只是零星的.)
几乎每个浏览器都可以解析这个问题 – 我怎么能说服xmllint呢?我想避免必须注入一个中间步骤来“修复”该文件.相反,我想要:
1)找到一个标志,验证选项等,以帮助解析器,或:
2)使用其他一些工具. (但是什么?xmllint总是我的命令行XPath命令.)
此外,仅使用xpath会导致:
> xpath html.out '//myquery...' not well-formed (invalid token) at line 2,column 11,...
解决方法
您可以使用–html命令行选项在xmllint中启用HTML解析器.这样,您就可以处理HTML文档.