2

XPathがSQLInクエリに相当するものを知りたいのですが。基本的にSQLで私はこれを行うことができます:

select * from tbl1 where Id in (1,2,3,4)

だから私はXPath/Xslで似たようなものが欲しいです:

すなわち

//*[@id= IN('51417','1121','111')]

ご意見をお聞かせください

4

2 に答える 2

2

解決策は、オプションを個別の条件として書き出すことです。

//*[(@id = '51417') or (@id = '1121') or (@id = '111')]

ただし、ハックのように見えるもう1つの少し冗長でない解決策は、次のcontains関数を使用することです。

//*[contains('-51417-1121-111-', concat('-', @id, '-'))]

文字通り、これは、id属性の値(前後に区切り文字が続く)がのサブストリングであるかどうかをチェックしていることを意味します-51417-1121-111--許容値の区切り文字としてハイフン()を使用していることに注意してください。idこれは、属性に表示されない任意の文字に置き換えることができます。

于 2012-09-14T09:06:49.127 に答える
2

(XPath 2では)=演算子は常にのように機能します。

つまり、あなたは使うことができます

//*[@id = ('51417','1121','111')]
于 2012-09-14T09:35:50.923 に答える