xmllint匹配和提取值

时间:2015-02-23 22:43:46

标签: xml xpath xmllint

我只想拉"图像"来自xml但我收到错误,因为前几个人不会包含" 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

1 个答案:

答案 0 :(得分:3)

如果我只修改输入文件的一行,则更改

<png></png>

<png>Some text goes here</png>

...然后你的代码完全按照已经编写的方式工作。因此,错误与前几个没有description的{​​{1}}没有任何关系。


请注意,由于您没有定义任何名称空间,因此您根本不需要使用png

local-name()

......同样有效。