我有以下XML
<;?xml version=“1.0”encoding=“UTF-8”?>;
<;员工>;
<;员工id=“3”>;
<;年龄>;40</年龄>;
<;名称>;汤姆</名称>;
<;性别>;男</性别>;
<;角色>;经理</角色>;
</员工>;
<;员工id=“4”>;
<;年龄>;25</年龄>;
<;名称>;梅希纳</名称>;
<;性别>;女性</性别>;
<;角色>;经理</角色>;
</员工>;
</员工>;
我想选择id为“4”的Employee元素
我使用下面的XPath表达式,它不返回任何内容
//Employee/[@id='4']/text()
我在http://chris.photobooks.com/xml/default.htm 它说xpath无效,不确定问题出在哪里
您需要删除[]谓词之前的/。谓词(在[]中的部分)前面不应该紧跟斜杠。此外,要选择Employee元素本身,您应该去掉/text()在末尾或其他地方,您只需选择Employee元素下的空白文本值即可
//员工[@id='4']
编辑:正如Jens在评论中指出的那样,/可能会非常慢,因为它会在整个文档中搜索匹配的节点。如果要处理的文档结构保持一致,最好使用完整路径,例如:
/Employees/Employees[@id='4']