-1

我只想从 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
4

1 回答 1

3

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

<png></png>

<png>Some text goes here</png>

...那么您的代码就像已经编写的那样完美地工作。因此,该错误与前几个descriptions 没有任何关系png


请注意,由于您没有定义任何名称空间,因此您根本不需要搞乱local-name()

xmllint --xpath "/document/job/type/description/image/png/text()"

......同样有效。

于 2015-02-23T22:48:31.620 回答