XPath 1.0には、SQLの "in"演算子として機能する演算子がありますか?XPath "in"演算子
select * from tbl_students where id in (1,2,3)
XPath 1.0には、SQLの "in"演算子として機能する演算子がありますか?XPath "in"演算子
select * from tbl_students where id in (1,2,3)
XPath 1.0の=演算子はそのように動作しますが、XPath 1.0はシーケンスを書き込む構文を提供しません。フォーム
<doc>
<value>1</value>
<value>2</value>
<value>3</value>
</doc>
のXML文書を持っているのであれば、その後//doc[value = 2]
のような表現は、そのdoc
要素を返します。
XPath 2.0では、構文(1, 2, 3)
は3つの整数のシーケンスを作成し、$i = (1, 2, 3)
のような条件を記述できます。しかし、リテラルシーケンスはXPath 1.0の機能ではありません。XPath式の一方の側で複数の値を取得する唯一の方法は、複数のノードに一致するパス式を使用することです。
私は同じ問題を抱えていましたが、上記の答えは正しいです。あなたが検索「idは」の順序であるかどうかを調べるに
select * from documents where documenttype in ('newsletter','magazine')
:
//*:document[*:documentType=("magazine","newspaper")]
ウィッヒのequivalant次のようになります。それはより明確にするために、のXpathでは、これはのような何かを見ていきます(1、2、3、4) index-of()のいずれかを選択できます。 インデックスには注意が必要です。
<student id='1'/>
<student id='101'/>
<student id='1001'/>
のような文書の一部については
を選択します正確な答えを
//*[not(empty(index-of((1, 2, 3, 4), @id)))]
1のようなもの。 –