我无法理解何时应该使用 data()
函数。
例子:
$path/@name
还是 $path/data(@name)
?
有时,当我不放置 data()
时,我得到一个错误,我只能添加它来修复。
最佳答案
一般来说,data()
当您想要提取存储在 XML 中并由模式定义的值的原子类型时,应该使用它。例如,假设您有一个将此元素定义为 xs:dateTime
的模式:
<my-time>2016-01-28T10:30:45.954716-06:00</my-time>
调用 data()
在 <my-time>
将返回 xs:dateTime
类型值。
然而,大多数时候,data()
只会表现得像 string()
.我怀疑在您的代码中有时您期望一个字符串但返回一个属性或节点。有时,由于类型强制而“有效”;其他时候,它会抛出异常。这当然取决于您的代码。
密切注意代码中的节点类型和原子值,应该更清楚为什么会出现这些错误。如果你想要的是一个字符串,那么使用 string()
而不是 data()
.
关于xml - XQuery:何时使用 data() 函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35066704/