私はすべての<set>erase</set>
の要素を選択しようとしているように、2つ以上の要素が階層に<set>erase</set>
を持っている場合ということ:にのみ要素(例<b>
と<d>
両方が<set>erase</set>
を持っています)親ノード名を選択する必要があります(この場合は<b>
)。以下XPathクエリは、基準に基づいて子孫を無視して、すべての要素を選択するには
サンプルXML:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<a>
<b>
<set>erase</set>
<d>
<set>erase</set>
</d>
</b>
<c>
<x></x>
</c>
<e>
<y>
<set>erase</set>
<q></q>
</y>
<z>
<p>
<set>erase</set>
</p>
</z>
</e>
</a>
私はquery = //set[contains(.,'erase')]
を使用する場合、私は結果セットにnodesList b,d,y,p
のすべて<set>erase</set>
を取得します。
<set>erase</set>
のb
,y
、およびp
を選択するために、クエリのフレーミングに助けが必要です。ここで
私はあなたの要件が明確ではないと思います。あなたが描写した内容に基づいて、なぜ「a」が選択されないのでしょうか? –
@ lwburk:申し訳ありませんが悪いです。私が与えたサンプルXMLを修正しました。 – user1207560
要素値に基づいてancesterノードを取得するための[Xpathクエリ]の重複可能性(http://stackoverflow.com/questions/9271001/xpath-query-to-get-the-ancester-nodes-based-on-element-値) –