2011-09-19 66 views
3

我想写一个XPath查询,将选择一个元素,它的文本包含给定的字符串:的XPath:包含(./文本(),“STR”)将仅看在第一个文本后代

<div>Text1<strong>censored</strong>Text2</div> 

所以下面的查询不会匹配

//div[contains(./text(), 'Text2')]/strong/text() 

但是这一个意志,文本节点指标明确指出:

//div[contains(./text()[2], 'Text2')]/strong/text() 

^h我会写一个能匹配任何文本后代的查询吗?

回答

5
//div[text()[contains(., 'Text2')]]/strong/text() 
+0

我只想在'div'的文本节点内搜索。你的查询也将查看div的所有后代,并产生不想要的结果 –

+0

哦,不要忘记,我没有注意到'text()'在开始 –

相关问题