【发布时间】:2015-04-25 10:31:38
【问题描述】:
我只想从 xml 中提取“图像”,但由于前几个不包含“图像”而出现错误。
<?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
【问题讨论】:
-
什么错误,完全正确?您的代码应该已经按照您的描述进行。另外,为什么
local-name搞得这么乱?有没有你没有向我们展示的命名空间? -
@MathiasMüller, ...尽管在给出的示例文档中,
png没有子文本节点。 OP 选择不在他们的问题中提供的错误是“XPath 集为空”。 -
XPath 查询在许多方面都像 SQL 连接一样——它已经确实继续寻找符合所有规范的元素,而不是放弃如果它开始的第一条路径不成功。