【问题标题】:How do I retrieve all text in an HTML DOM but exclude SCRIPT and STYLE tags?如何检索 HTML DOM 中的所有文本,但不包括 SCRIPT 和 STYLE 标签?
【发布时间】:2011-04-09 02:24:12
【问题描述】:

我知道如何从 DOM 中快速提取文本节点:

document.evaluate('//text()', document, null, XPathResult.ANY_TYPE, null)

但是有没有一种简单的方法可以从 SCRIPT、STYLE 或其他未向用户显示的标签中排除文本?

类似:

'//text()[ parent.name not in ("SCRIPT", "STYLE") ]'

谢谢, 迈克

【问题讨论】:

    标签: javascript dom xpath


    【解决方案1】:
    //*[not(self::script or self::style)]/text()
    

    【讨论】:

      【解决方案2】:

      除了 Nick Jones 正确答案之外,对于更复杂的排除,您应该使用 XPath 节点集排除表达式:

      $ns1[not(count(.|$ns2)=count($ns2))]
      

      在这种情况下:

      //*[not(count(.|//script|/*/*/style)=count(//script|/*/*/style))]/text()
      

      【讨论】:

        猜你喜欢
        • 2022-01-10
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-09-03
        • 2015-02-11
        • 2018-03-10
        • 1970-01-01
        • 2019-02-15
        相关资源
        最近更新 更多