0

特定の要素の大文字と小文字がドキュメントごとに異なる可能性がある XPath を使用して XML ドキュメントを処理しています (質問しないでください。ドキュメントの生成は制御していません)。

これを処理するために、私の XPath クエリの 1 つは次のようになります。

//group[group='Foo']/subGroup[sub='Bar' or Sub='Bar'] | //group[group='Foo']/SubGroup[sub='Bar' or Sub='Bar']

要素は または のいずれかとしてsubGroup発生する可能性があり、要素は または のいずれかとして表示されることに注意してください。subGroupSubGroupsubsubSub

この XPath を短縮する方法はありますか?

これに似た複数のクエリがありますが、その部分を効果的に複製または拡張しますsub(例:との違いととの違いは、セクションが異なっていても、ほとんどのクエリに存在します。[a='b' and (sub='Bar' or Sub='Bar')]subGroupSubGroupsubSub//group[group='Foo']

4

1 に答える 1

0

残念ながら、長くはありませんが、確かに醜いわけではありません

//group[group='Foo']/*[self::subGroup | self::SubGroup][sub='Bar' or Sub='Bar']

Marvin Smit が彼のコメントtranslate()で概説したように、他の亜種はandに依存します。name()

于 2013-10-22T17:22:15.273 に答える