繁体   English   中英

用于选择所有文本节点的XPath

[英]XPath for selecting all text nodes

我正在编写一个JavaScript函数,可以用HTML代码替换文本,但要做到这一点,我需要能够以文本节点的形式访问文本。 以下XPath选择文档中的所有div标记:

//div

以下XPath选择具有赋值myclass的属性class所有元素:

//*[@class="myclass"]

以下选择具有ID comments的元素下面的任何级别的所有文本 (不是文本节点):

//*[@id="comments"]//text()

什么是XPath可用于选择任何元素下的所有文本节点? 所以,假设我想要替换字符串Hebert所有非注释事件,并且我需要所有文本节点,以便我可以扫描它们以查找该字符串。 它会在查询中使用text()吗?

两种选择:

  • 要选择其字符串值包含子字符串“Herbert”的所有文本节点:

     //text()[contains(.,'Herbert')] 
  • 要选择所有文本节点,其字符串值 “赫伯特”:

     //text()[.='Herbert'] 

请注意你的评论,

以下选择所有文本(不是文本节点)

关于XPath, //text() ,是不正确的。 节点测试text()选择文本节点。 在字符串上下文中,它将返回文本节点的字符串值 ,但text()单独肯定会选择实际的文本节点。

另请参阅在XPath中测试text()节点与字符串值

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM