2

我有一个 HTML,其中包含一些标签,如下所示:

<div id="SNT">text1</div>
<div id="SNT">text2</div>
<div id="SNT"><span style='color: #EFFFFF'>text3</span></div>
<div id="SNT"><span style='color: #EFFFFF'>text4</span></div>

如何使用 XPath 获取所有标签中包含text的所有 s ?<div>

IE:

text1  
text2  
text3  
text4   
4

1 回答 1

1

使用

//div[@id='SNT']//text()

div这将选择作为 XML 文档中任何元素的后代的任何文本节点,该节点id具有字符串值为 string 的属性"SNT"

如果要从此选择中排除纯空格文本节点,请使用:

//div[@id='SNT']//text()[normalize-space()]

这类似于第一个 XPath 表达式,但现在每个选定的文本节点都必须满足一个附加谓词——即normalize-space()函数在其字符串内容上的值是一个非空字符串。

normalize-space()仅当函数的参数是空字符串本身或由纯空格字符(空格、NL、CR 和 Tab)组成的字符串时,该函数的值才是空字符串。

于 2012-06-04T13:15:59.410 回答