我有一个包含以下内容的 XML 文档
...
<foo>abc</foo>
...
如果我评估
return $xml//foo
我回来
<foo>abc</foo>
有什么办法可以abc
代替吗?
是的,您需要 text() 函数来选择子文本:
return $xml/text()
但是,如果您将在 $xml 中包含嵌套标记结构,请小心,因为这对于文本节点只会深入一层。如果你想把所有的文本节点放在一起,去掉其他 XML 结构,这将做任意深度:
return $xml//text()
使用 string 函数获取节点的字符串内容。
return string($xml)
要仅返回元素内的数据,您可以使用:
return data($xml)
转换为 xs:string
{xs:string($xml/foo)}
OSB(oracle service bus)用户可以使用以下功能。
fn-bea:serialize($xml)