text() 和 string() 之间的区别

2024-03-10

有人可以解释一下 text() 和 string() 函数之间的区别吗?我经常将其与其他一起使用,但没有任何区别,两者都会获取xml节点的字符串值。


有人可以解释一下text()和string()之间的区别吗 功能。

I. text()不是一个函数而是一个节点测试 https://www.w3.org/TR/2017/REC-xpath-31-20170321/#node-tests.

它用于选择上下文节点的所有文本节点子节点。

因此,如果上下文节点是名为的元素x, then text()选择的所有文本节点子节点x.

其他例子:

/a/b/c/text()

选择任何的所有文本节点子节点c任何元素的子元素b顶部元素的子元素a.

II. The string() https://www.w3.org/TR/xpath-functions/#func-string功能

根据定义string(exprSelectingASingleNode)返回字符串值 https://www.w3.org/TR/2017/REC-xpath-datamodel-31-20170321/#dt-string-value节点的。

元素的字符串值是其所有文本节点后代的串联——按文档顺序。

因此,如果在以下 XML 文档中:

<a>
  <b>2</b>
  <c>3
    <d>4</d>
  </c>
  5
</a>

string(/a)返回(不带引号):

"
  2
  3
    4

  5
"

正如我们所看到的,字符串值反映了三个仅包含空格的文本节点,我们通常不会注意到和解释这些节点。

一些 XML 解析器可以选择删除仅包含空白的文本节点。如果上面的文档被解析为仅包含空白的文本节点被剥离,则相同的函数:

string(/a)

现在返回:

"23
    4
  5
"
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

text() 和 string() 之间的区别 的相关文章

随机推荐