我正在编写一个可以用HTML代码替换文本的JavaScript函数,但要做到这一点,我需要能够以文本节点的形式访问文本。以下XPath选择文档中的所有div
标记:
//div
以下XPath选择属性class
分配了值myclass
的所有元素:
//*[@class="myclass"]
以下选择ID为comments
的元素下任何级别的所有文字(不是文字节点):
//*[@id="comments"]//text()
什么是XPath可用于选择任何元素下的所有文本节点?所以,假设我想要替换字符串Hebert
的所有非注释事件,并且我需要所有文本节点,以便我可以扫描它们以查找该字符串。它会在查询中使用text()
吗?
答案 0 :(得分:6)
两个选项:
选择字符串值包含子字符串的所有文本节点 “赫伯特”:
//text()[contains(.,'Herbert')]
选择字符串值 “Herbert”的所有文本节点:
//text()[.='Herbert']
请注意您的评论,
以下选择所有文本(不是文本节点)
关于XPath,//text()
是不正确的。节点测试text()
选择文本节点。在字符串上下文中,它将返回文本节点的string-value,但仅text()
肯定会选择实际的文本节点。