我有一个包含以下内容的XML文档
...
<foo>abc</foo>
...
如果我评估
return $xml//foo
我回来了
<foo>abc</foo>
有没有办法让abc
代替?{/ p>
答案 0 :(得分:27)
是的,您需要text()函数来选择子文本:
return $xml/text()
如果你在$ xml中有嵌套的标记结构,请注意,因为这只会对文本节点有一个深度。如果你想要将所有文本节点放在一起,去掉其他XML结构,这将是任意深入的:
return $xml//text()
答案 1 :(得分:16)
使用字符串函数获取节点的字符串内容。
return string($xml)
答案 2 :(得分:8)
要仅返回您可以使用的元素内的数据:
return data($xml)
答案 3 :(得分:0)
转换为xs:string
{xs:string($xml/foo)}
答案 4 :(得分:0)
OSB(oracle服务总线)用户可以使用以下功能。
fn-bea:serialize($xml)