【发布时间】:2021-07-12 05:54:54
【问题描述】:
我有一个这样的 HTML 代码
<dl>
<dt><a href="element1" id="element1">element1</a> Version 1 </dt>
<dd>Description 1</dd>
<dt><a href="element2" id="element2">element2</a> Version 2 </dt>
<dd>Description 2</dd>
...
</dl>
我想打印一个类似的输出
Item: element1, Version: Version1, Description: Description 1
Item: element2, Version: Version2, Description: Description 2
...
我尝试了几种方法,但我最好的方法是:
xmllint --xpath "concat('Item: ', //dl/dt/a/text(),', Version: ',', Description: ',//dl/dd/text())" file
#output
Item: element1, Version: , Description: Description 1
问题:
- 无法获取版本
- 无法获取所有元素
【问题讨论】:
-
我不认为你可以用 xmllint 做到这一点;你可能需要一些支持 xquery 的东西,比如 xidel。
-
您可以访问 xmlstarlet 吗?
-
xsltproc在 html 模式下使用适当的样式表是更好的选择。
标签: bash html-parsing xmllint