在XPath中选择重复的标记ID

问题描述 投票:0回答:1

如何使用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和其余节点值。如果没有,我该如何改进?

xml xpath
1个回答
1
投票

在查询中包含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>
© www.soinside.com 2019 - 2024. All rights reserved.