我正在编写一个JavaScript函数,可以用HTML代码替换文本,但要做到这一点,我需要能够以文本节点的形式访问文本 . 以下XPath选择文档中的所有 div
标记:
//div
以下XPath选择属性 class
赋值为 myclass
的所有元素:
//*[@class="myclass"]
以下选择在ID为 comments
的元素下的任何级别发生的所有 text (非文本节点):
//*[@id="comments"]//text()
什么是XPath可用于选择任何元素下的所有文本节点?所以,假设我想要替换字符串 Hebert
的所有非注释事件,并且我需要所有文本节点,以便我可以扫描它们以查找该字符串 . 它会在查询中使用 text()
吗?
1 回答
两种选择:
请注意你的评论,
关于XPath,
//text()
,是不正确的 . 节点测试text()选择文本节点 . 在字符串上下文中,它将返回文本节点的string-value,但单独text()
肯定会选择实际的文本节点 .另见Testing text() nodes vs string values in XPath