次のXMLドキュメントがあります。
<root>
<description name="testing1">
<descriptionextension name="unda">
<type>test</type>
</descriptionextension>
<descriptionextension name="koppu">
<type>test</type>
</descriptionextension>
<descriptionextension name="valid">
<type>test</type>
</descriptionextension>
</description>
<description name="testing2">
<descriptionextension name="valid">
<type>test</type>
</descriptionextension>
<descriptionextension name="valid">
<type>test</type>
</descriptionextension>
<descriptionextension name="valid">
<type>test</type>
</descriptionextension>
</description>
</root>
これはXPathクエリです。
//description/descriptionextension[contains(@name,'valid')]/../@name
すべての子の説明拡張子が「有効」である場合にのみ、説明名をフェッチすることは可能ですか?ここでは「testing2」のみを取得したいと思います。
1つの解決策:
//description[empty(descriptionextension[@name != 'valid'])]/@name/string()
ここにもう1つあります(他にもさまざまなものがあります):
//description[not(descriptionextension/@name != 'valid')]/@name/string()
XQueryを使用すると、次のように記述できます。
for $d in //description
where every $de in $d/descriptionextension satisfies $de/@name = 'valid'
return $d/@name/string()
ご覧のとおりdescription
、descriptionextension
子要素がない場合も受け入れられます。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加