2011-08-16 98 views
0

我需要有一个列表包含XPath函数将这样工作:在XPath中,如何检查列表是否包含特定项目?

//*[contains(("one", "two", "three"), "one") 

是否有这样的事?

仅适用于上下文,这是我试图解决这个问题:我有一个DOM树

<element blah="one two three"> 

<element blah="bone two three"> 

<element blah="two three one"> 

我要选择的第一和第三,因为它们含有锥一个

//*[contains(tokenize(@blah,'\s+'),'one')] 

这是我到目前为止,但它似乎不是一个有效的XPath查询。

我知道记号化以这种格式返回的东西:

("one", "two", "three") 

我需要的是能够检查什么是在该列表中。

回答

1

简单:

"one" = ("one", "two", "three") 

或者更长时间:

some $i in ("one", "two", "three") satisfies $i eq "one" 
+0

.//* [包含(@类, 'ibmPortalControl')] // * [包含(CONCAT(””, @class,''),'decoration-title')] 正是我所需要的。通过在每一面用空格包裹'装饰标题',它很容易找到,并不意味着我们必须搜索结果集。 –

相关问题