2

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

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

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

IE

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

请指教

4

2 回答 2

2

(在 XPath 2 中)= 运算符总是像在中一样工作。

即你可以使用

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

一种解决方案是将选项写为单独的条件:

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

另一个看起来有点像黑客的稍微不那么冗长的解决方案是使用该contains函数:

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

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

于 2012-09-14T09:06:49.127 回答