gpt4 book ai didi

xpath - text() 和 string() 的区别

转载 作者:行者123 更新时间:2023-12-03 08:53:36 28 4
gpt4 key购买 nike

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

最佳答案

Can someone explain the difference between text() and string() functions.



一、text()不是函数而是 node test .

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

所以,如果上下文节点是一个名为 x 的元素,然后 text()选择 x 的所有文本节点子节点.

其他示例 :
/a/b/c/text()

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

二、 string() 功能

根据定义 string(exprSelectingASingleNode)返回 string value节点的。

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

因此,如果在以下 XML 文档 :
<a>
<b>2</b>
<c>3
<d>4</d>
</c>
5
</a>
string(/a)返回(没有周围的引号):
"
2
3
4

5
"

正如我们所看到的,字符串值反射(reflect)了三个纯空白文本节点,我们通常没有注意到和说明。

一些 XML 解析器可以选择去除纯空白文本节点。如果上面的文档是在去除纯空白文本节点的情况下解析的,那么相同的功能:
string(/a)

现在返回:
"23
4
5
"

关于xpath - text() 和 string() 的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9493732/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com