什么是XPath等同于SQL In查询?

时间:2012-09-14 09:04:03

标签: xpath operator-keyword

我想知道什么是XPath等同于SQL In查询。基本上在sql中我可以这样做:

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

所以我想在XPath / Xsl中使用类似的东西:

即。

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

请咨询

2 个答案:

答案 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')]