私は XPATH にかなり慣れていないので、特定のノードが 2 つの値のいずれかと等しい場合に、複数の XML オブジェクトから値を返す必要があります。ソリューションは、local-name() を使用して名前空間に依存しない必要もあります。次の XML が与えられた場合、「A」が「4」または「5」のいずれかに等しい「B」のすべての値を返すことを検討しています。
<?xml version="1.0"?>
<element>
<A>3</A>
<B>Value 1</B>
</element>
<element>
<A>4</A>
<B>Value 2</B>
</element>
<element>
<A>5</A>
<B>Value 3</B>
</element>
次の式を何度も繰り返してみましたが、「A」の 2 番目の値を追加しようとすると、正しい構文を取得できないようです。「または」式の正しい構文を理解できないようです。ユニオンの使用も検討しましたが、その構文も正しくありませんでした。
これは、「A」が「4」の単一の値に等しい場合に機能しますが、「5」の値のテストを追加して、結果が「B」の 2 つの値 (「値 2」と「値 3」) を返すようにする方法)?
//*[local-name()='element'][*[local-name()='A']='4']/*[local-name()='B']/text()
ありがとうございました。どんな助けでも大歓迎です!