[英]XPath to select Element by attribute value
我有以下 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 无效,不确定问题出在哪里。
您需要在[
之前删除/
。 谓词( [
]
的部分)不应该在它们之前有斜线。 此外,要选择 Employee 元素本身,您应该在末尾省略/text()
,否则您只需选择 Employee 元素下方的空白文本值。
//Employee[@id='4']
编辑:正如 Jens 在评论中指出的那样, //
可能会很慢,因为它会在整个文档中搜索匹配节点。 如果您正在处理的文档结构要保持一致,则最好使用完整路径,例如:
/Employees/Employee[@id='4']
接下来,您可以选择“具有特定属性的所有节点”,如下所示:
//*[@id='4']
尝试这样做:
/Employees/Employee[@id=4]/*/text()
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.