我有一个由现有工具生成的 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 命令的首选。)
此外,使用 justxpath
会导致:
> xpath html.out '//myquery...'
not well-formed (invalid token) at line 2, column 11, ...