gpt4 book ai didi

bash - xmllint 解析 html 文件

转载 作者:行者123 更新时间:2023-11-29 09:21:13 39 4
gpt4 key购买 nike

我试图在 mac 上的各种 html 文件中解析出特定标签之间的文本。我在找第一个 <H1>标题在 body 里。示例:

<BODY>
<H1>Dublin</H1>

我认为为此使用正则表达式是一种反模式,所以我改用了 xmllint 和 xpath。

xmllint --nowarning --xpath '/HTML/BODY/H1[0]'

问题是某些 HTML 文件包含格式错误的标签。所以我在

行得到错误
 parser error : Opening and ending tag mismatch: UL line 261 and LI
</LI>

问题是我做不到,2>/dev/null那时我完全丢失了这些文件。有没有什么办法,我可以在这里使用 XPath 表达式,然后说,如果 XML 不完美,请放松,只要给我第一个 H1 标题之间的值即可?

最佳答案

试试 --html 选项。否则,xmllint 会将您的文档解析为比 HTML 严格得多的 XML。另请注意,XPath 索引是从 1 开始的,并且 HTML 标记在解析时会转换为小写。命令

xmllint --html --xpath '/html/body/h1[1]' - <<EOF
<BODY>
<H1>Dublin</H1>
EOF

打印

<h1>Dublin</h1>

关于bash - xmllint 解析 html 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42680061/

39 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com