我有以下 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 元素下的空白文本值。
/text()
//Employee[@id = '4']
还有一点需要注意://可能会非常慢,因为它会在整个文档中搜索匹配的节点。如果您正在使用的文档的结构是一致的,那么您最好使用更明确的路径,例如:
//
/Employees/Employee[@id = '4']