• xpath之normalize-space(.)和normalize-space(text())区别


    normalize,字面意思就是正规化,加上space大概意思就是空格的处理了。

    官方解释是这样的:

    通过去掉前导和尾随空白并使用单个空格替换一系列空白字符,使空白标准化。如果省略了该参数,上下文节点的字符串值将标准化并返回。

    .是当前节点。如果在需要字符串的地方使用它(例如作为参数normalize-space()),引擎会自动将节点转换为节点的字符串值,对于元素来说,该元素是元素内连接的所有文本节点。

    text() 另一方面仅选择作为当前节点的直接子节点的文本节点。

    例如,给定XML:

    <a>Foo
        <b>Bar</b>
      lish
    </a>

    假设<a>是你当前的节点,normalize-space(.)将返回Foo Bar lish,但normalize-space(text())会失败,因为text()返回两个文本节点(Foolish)的节点集,它normalize-space()不接受。

    长话短说,如果你想标准化一个元素中的所有文本,请使用.。如果要选择特定的文本节点,请使用text(),但请始终记住尽管名称不同,但会text()返回一个节点集,如果节点集只有一个元素,它将自动转换为字符串。

  • 相关阅读:
    [Javascript] Prototype Pattern
    [Typescript] tsexpecterror
    [React] Compound Pattern
    [React] SWR for data fetching
    [Javascript] Factory pattern vs Class instance
    [Typescript] Only Type import or export
    AcWing 1113. 红与黑
    AcWing 178 第K短路
    AcWing 190.字串变换
    AcWing 165 小猫爬山
  • 原文地址:https://www.cnblogs.com/wanglingjiang/p/11269766.html
Copyright © 2020-2023  润新知