在XPath中选择重复的标记ID

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在XPath中选择重复的标记ID相关的知识,希望对你有一定的参考价值。

如何使用Xpath获取重复的标记ID。例如:

<Employees>
    <Employee id="1">
        <age>29</age>
        <name>Pankaj</name>
        <gender>Male
            <sexuality>Heterosexual</sexuality>
        </gender>
        <role>Java Developer</role>
    </Employee>
    <Employee id="2">
        <age>35</age>
        <name>Lisa
            <lastname>Monyet</lastname>
        </name>
        <gender>Female</gender>
        <role>CEO</role>
    </Employee>
    <Employee id="1">
        <age>40</age>
        <name>Tom</name>
        <gender>Male</gender>
        <role>Manager</role>
    </Employee>
</Employees>

另一个问题是,

这个XPath查询://Employee/*能够返回标记id和其余节点值。如果没有,我该如何改进?

答案

在查询中包含id就可以了

xmllint -xpath '//Employee[@id="1"]' test.xml 

结果:

    <Employee id="1">
        <age>29</age>
        <name>Pankaj</name>
        <gender>Male
            <sexuality>Heterosexual</sexuality>
        </gender>
        <role>Java Developer</role>
    </Employee><Employee id="1">
        <age>40</age>
        <name>Tom</name>
        <gender>Male</gender>
        <role>Manager</role>
    </Employee>

以上是关于在XPath中选择重复的标记ID的主要内容,如果未能解决你的问题,请参考以下文章

列出的选项的正确 xpath 是啥?

如何使用xpath和文本识别元素[重复]

无论特定 Id 如何,如何使用 XPath 选择类别 XML 节点?

如何使用 XPath 选择以下同级/XML 标记

如何使用 xpath 选择名称空间定义标记

通过 XPATH 选择 <a href> HTML 标记的文本部分