data()函数和Xquery中的string()函数有什么实际区别?当我使用它们时,它们似乎都会返回相同的结果.有人可以给我一个简单的例子,说明它们有何不同?
let $dataset :=
<data-set cool="rad">
<!--- This is a comment -->
<pages cool2="rad2" more="i guess">
<page>
<title>Puppy</title>
<content>Puppies are great!</content>
</page>
<page>
<title>Dogs</title>
<content>Dogs are grown up!</content>
</page>
<page>
<title>Puppy</title>
<content>Puppies are great!</content>
</page>
</pages>
</data-set>
return $dataset/string()
(: data() returns the same thing as string() :)
(: return $dataset/data() :)
Run Code Online (Sandbox Code Playgroud)
string()将始终返回一个字符串,而data()返回"键入的值".大部分时间都是这样xs:string; 但是,它也可以是xs:untypedAtomic或任何其他原子类型(通常在模式中定义).
还有一些不直观的案例.例如,获取data()文档节点将返回节点的字符串值,但是作为xs:untypedAtomic.作为一般规则,如果您想要一个字符串,请string()不要使用data().
有关所有详细信息,请参阅规范:http://www.w3.org/TR/xpath-functions/#func-data.
本节对类型和字符串数据之间的区别进行了很好的解释http://www.w3.org/TR/xpath-datamodel/#typed-string-relationships.
| 归档时间: |
|
| 查看次数: |
652 次 |
| 最近记录: |