我想知道什么是XPath等同于SQL In查询。基本上在sql中我可以这样做:
select * from tbl1 where Id in (1,2,3,4)
所以我想在XPath / Xsl中使用类似的东西:
即。
//*[@id= IN('51417','1121','111')]
请咨询
答案 0 :(得分:2)
解决方案是将选项写为单独的条件:
//*[(@id = '51417') or (@id = '1121') or (@id = '111')]
另一个略显不那么详细的解决方案看起来有点像黑客,但是会使用contains
函数:
//*[contains('-51417-1121-111-', concat('-', @id, '-'))]
从字面上看,这意味着您要检查id
属性的值(由分隔符开头和成功)是-51417-1121-111-
的子字符串。请注意,我使用连字符(-
)作为允许值的分隔符;你可以用任何不会出现在id
属性中的字符替换它。
答案 1 :(得分:2)
(在XPath 2中),=运算符总是像在。
中一样即。你可以用
//*[@id = ('51417','1121','111')]