有人可以解释text()和string()函数之间的区别.我经常使用一个与其他,但它没有任何区别,两者都将获得xml节点的字符串值.
解决方法
Can someone explain the difference between text() and string()
functions.@H_301_9@
I. text()不是一个功能,而是一个node test.@H_301_9@
它用于选择上下文节点的所有文本节点子节点.@H_301_9@
因此,如果上下文节点是名为x的元素,则text()将选择x的所有文本节点子节点.@H_301_9@
其他例子:@H_301_9@
/a/b/c/text()
选择作为顶级元素a的子元素的任何b元素的子元素的所有c元素的所有文本节点子元素.@H_301_9@
通过定义string(exprSelectingASingleNode)返回节点的string value.@H_301_9@
元素的字符串值是其所有文本节点后代的连接 – 按文档顺序.@H_301_9@
因此,如果在以下XML文档中:@H_301_9@
<a> <b>2</b> <c>3 <d>4</d> </c> 5 </a>
string(/ a)返回(不带周围的引号):@H_301_9@
" 2 3 4 5 "
如我们所见,字符串值反映了三个仅空白的文本节点,我们通常无法注意和解释.@H_301_9@
一些XML解析器可以选择剥离仅空白的文本节点.如果上述文档被解析为仅空白的文本节点剥离,则相同的功能:@H_301_9@
string(/a)
现在返回:@H_301_9@
"23 4 5 "