XPath 1.0 には、SQL の "in" 演算子として機能する演算子がありますか?
select * from tbl_students where id in (1,2,3)
XPath 1.0 の = 演算子はそのように機能しますが、XPath 1.0 はシーケンスを記述するための構文を提供していません。したがって、次の形式の XML ドキュメントがある場合
<doc>
<value>1</value>
<value>2</value>
<value>3</value>
</doc>
次に、式 likeはその要素 //doc[value = 2]
を返します。doc
XPath 2.0 では、構文(1, 2, 3)
は 3 つの整数のシーケンスを作成し、 のような条件を記述できます$i = (1, 2, 3)
。ただし、リテラル シーケンスは XPath 1.0 の機能ではありません。XPath 式の片側で複数の値を取得する唯一の方法は、複数のノードに一致するパス式を使用することです。
私は同じ問題を抱えていました。上記の答えは正しいです。より明確にするために、Xpath では次のようになります。
//*:document[*:documentType=("magazine","newspaper")]
これは次のものと同等です:
select * from documents where documenttype in ('newsletter','magazine')