例如,提供了XML。
<?xml version="1.0" encoding="utf-8"?>
<store d:mi="22">
<book price="12.99" d:price="Number" d:mi="4">
<title d:constr="String" d:mi="1">Sword of Honour</title>
<category d:constr="String" d:mi="2">fiction</category>
<author d:constr="String" d:mi="3">Evelyn Waugh</author>
</book>
<book price="8.99" d:price="Number" d:mi="9">
<sublist>
<title d:constr="String" d:mi="5">Moby Dick</title>
<category d:constr="String" d:mi="6">fiction</category>
<author d:constr="String" d:mi="7">Herman Melville</author>
<isbn d:constr="String" d:mi="8">0-553-21311-3</isbn>
</sublist>
</book>
<Note price="8.95" d:price="Number" d:mi="13">
<title d:constr="String" d:mi="10">50</title>
<category d:constr="String" d:mi="11">reference</category>
<author d:constr="String" d:mi="12">Nigel Rees</author>
</Note>
<Note price="22.99" d:price="Number" d:mi="18">
<title d:constr="String" d:mi="14">The Lord of the Rings</title>
<category d:constr="String" d:mi="15">fiction</category>
<author d:constr="String" d:mi="16">J. R. R. Tolkien</author>
<isbn d:constr="String" d:mi="17">0-395-19395-8</isbn>
</Note>
</store>
使用下面的Xpath,我可以获得商店元素。
String name = "String";
String xpath = "//title[@d:constr='" + name + "']/parent::store";
但我们需要得到书(我们不知道的任何东西),这是商店的孩子(常数字)。有可能吗?
答案 0 :(得分:0)
尝试使用以下表达式匹配所需title
忽略节点名称的父级:
String name = "String";
String xpath = "//title[@d:constr='" + name + "']/parent::*";
另请注意store
不是title
的父级,您应该使用"//title/ancestor::store"
代替"//title/parent::store"
如果你只想得到store
的孩子:
//store/child::*
第一个孩子:
//store/child::*[1]