我想从我的DOM查询所有文本节点。但是,我不希望这些“标记行开头”,HTML标记之间存在换行符。
所以我试图根据to here翻译所有空格并检查是否还有字符:
/html/body//text()[not(translate(., '	

', '') = '')]
这不起作用,因为它没有接缝可以再次检查空字符串(哪种有意义,因为它不是文本节点)。
过滤此节点的其他方法是什么?
答案 0 :(得分:3)
使用强>:
/html/body//text()[normalize-space()]
这将选择/html/body
的所有文本节点后代,每个后代都在规范化后具有非空字符串值。
上面的表达式使用标准的XPath函数normalize-space()
,它接受一个字符串(或上下文节点的字符串值,如果没有参数指定)并返回另一个删除所有前导和尾随空白字符,并将任何相邻空白字符的中间组替换为单个空格。