xmllint 匹配并提取值
xmllint match and extract value
我只想从 xml 中提取 "image",但出现错误,因为前几个不包括 "image"。
<?xml version='1.0' encoding='utf-8'?>
<document>
<job name="Job1">
<type>
<description>
</description>
</type>
</job>
<job name="Job2">
<type>
<description>
</description>
</type>
</job>
<job name="Job3">
<type>
<description>
<image>
<png></png>
</image>
</description>
</type>
</job>
</document>
如何跳过前两个并匹配第三个图像标签?
xmllint --xpath "//*[local-name()='document']/job/type/description/image/png/text()" file
如果我只修改你的输入文件的一行,改变
<png></png>
到
<png>Some text goes here</png>
...那么您的代码就可以像已经编写的那样完美运行。因此,该错误与没有 png
.
的前几个 description
完全无关
请注意,由于您没有定义任何名称空间,因此根本不需要弄乱 local-name()
。
xmllint --xpath "/document/job/type/description/image/png/text()"
...同样有效。
我只想从 xml 中提取 "image",但出现错误,因为前几个不包括 "image"。
<?xml version='1.0' encoding='utf-8'?>
<document>
<job name="Job1">
<type>
<description>
</description>
</type>
</job>
<job name="Job2">
<type>
<description>
</description>
</type>
</job>
<job name="Job3">
<type>
<description>
<image>
<png></png>
</image>
</description>
</type>
</job>
</document>
如何跳过前两个并匹配第三个图像标签?
xmllint --xpath "//*[local-name()='document']/job/type/description/image/png/text()" file
如果我只修改你的输入文件的一行,改变
<png></png>
到
<png>Some text goes here</png>
...那么您的代码就可以像已经编写的那样完美运行。因此,该错误与没有 png
.
description
完全无关
请注意,由于您没有定义任何名称空间,因此根本不需要弄乱 local-name()
。
xmllint --xpath "/document/job/type/description/image/png/text()"
...同样有效。