我正在寻找一个XPath表达式,用于选择具有父him
的{{1}},gramps
与name
的{{1}}具有相同的根名称hims
Jr
后缀store
name
看起来像是以gramps
命名。在下面的示例中,只有Bill
。
<root>
<gramps name="Bill">
<him name="Bill Jr">
<kid name="Bill III"></kid>
</him>
</gramps>
<gramps name="Tom">
<him name="Al">
<kid name="Al Jr"></kid>
</him>
</gramps>
<gramps name="Bob">
<him name="Bob Jr">
<kid name="Sam"></kid>
</him>
</gramps>
<store name="Bill's" />
<store name="Tom's" />
<store name="Pete's" />
</root>
答案 0 :(得分:2)
我认为这会选择你需要的东西......
/*/gramps[../store/@name=concat(@name,"'s")]/him[@name=concat(../@name,' Jr')]
这将选择Bill Jr
,因为您说您要选择him
。
如果您想选择gramps
(Bill
),只需将him
放入谓词中......
/*/gramps[../store/@name=concat(@name,"'s")][him[@name=concat(../@name,' Jr')]]