如何从text()XPath查询中排除换行符文本节点?

时间:2011-12-15 13:13:08

标签: javascript xml xpath

我想从我的DOM查询所有文本节点。但是,我不希望这些“标记行开头”,HTML标记之间存在换行符。

所以我试图根据to here翻译所有空格并检查是否还有字符:

/html/body//text()[not(translate(., '	

', '') = '')]

这不起作用,因为它没有接缝可以再次检查空字符串(哪种有意义,因为它不是文本节点)。

过滤此节点的其他方法是什么?

1 个答案:

答案 0 :(得分:3)

使用

/html/body//text()[normalize-space()]

这将选择/html/body的所有文本节点后代,每个后代都在规范化后具有非空字符串值。

上面的表达式使用标准的XPath函数normalize-space() ,它接受一个字符串(或上下文节点的字符串值,如果没有参数指定)并返回另一个删除所有前导和尾随空白字符,并将任何相邻空白字符的中间组替换为单个空格。