小编典典

XPath 按属性值选择元素

all

我有以下 XML。

<?xml version="1.0" encoding="UTF-8"?>
<Employees>
    <Employee id="3">
        <age>40</age>
        <name>Tom</name>
        <gender>Male</gender>
        <role>Manager</role>
    </Employee>
    <Employee id="4">
        <age>25</age>
        <name>Meghna</name>
        <gender>Female</gender>
        <role>Manager</role>
    </Employee>
</Employees>

我想选择 id=”4” 的 Employee 元素。

我正在使用下面的 XPath 表达式,它不返回任何内容。

//Employee/[@id='4']/text()

我在http://chris.photobooks.com/xml/default.htm检查了它,它说无效的
xpath,不确定问题出在哪里。


阅读 134

收藏
2022-06-13

共1个答案

小编典典

您需要删除/. [谓词(中的部分[..])不应该在它们之前有斜线——它们直接在它们关联的节点选择器之后。

此外,要选择 Employee 元素本身,您应该/text()在最后去掉 。否则,您只需选择 Employee 元素下的空白文本值。

//Employee[@id = '4']

还有一点需要注意://可能会非常慢,因为它会在整个文档中搜索匹配的节点。如果您正在使用的文档的结构是一致的,那么您最好使用更明确的路径,例如:

/Employees/Employee[@id = '4']
2022-06-13