XPath通过属性值selectElement
我有以下的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>
我想selectid =“4”的Employee元素。
我正在使用下面的XPathexpression式不返回任何东西。
//Employee/[@id='4']/text()
我检查http://chris.photobooks.com/xml/default.htm ,它说无效的xpath,不知道问题在哪里。
您需要删除/
之前的[
。 谓词( [
]
的部分)在它们之前不应该有斜杠。 另外,要selectEmployee元素本身,您应该在最后忽略/text()
,否则您只需在Employee元素下面立即select空白文本值。
//Employee[@id='4']
编辑:正如Jens在评论中指出的那样, //
可能会很慢,因为它会在整个文档中search匹配的节点。 如果您正在使用的文档的结构将保持一致,那么最好使用完整path,例如:
/Employees/Employee[@id='4']
尝试这样做:
/Employees/Employee[@id=4]/*/text()