2012-09-14 51 views
2

我想知道什么XPath相当于SQL In查询。基本上在SQL我可以做到这一点:什么是XPath相当于SQL查询?

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

,所以我想在的XPath/XSL类似的东西:

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

请指点

+0

你真的需要说你是否使用XPath 1.0或2.0。它造成巨大的差异。 –

回答

2

(在XPath 2,)=操作符总是工作像英寸

即你可以使用

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

一个解决办法是写出来的选项作为单独的条件:

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

另外,这看起来有点像黑客略少详细的解决方案,不过,会使用contains功能:

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

从字面上看,这意味着你正在检查是否id属性的值(preceeded并由分隔符字符继承)是-51417-1121-111-的子字符串。请注意,我使用连字符(-)作为允许值的分隔符;您可以将其替换为不会出现在id属性中的任何字符。