首页 > 解决方案 > 在 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。如果没有,我该如何改进?

标签: xmlxpath

解决方案


包括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>

推荐阅读