【发布时间】:2010-11-12 10:02:53
【问题描述】:
我有一个包含以下内容的 XML 文档
...
<foo>abc</foo>
...
如果我评估
return $xml//foo
我回来了
<foo>abc</foo>
有什么方法可以只获取abc 吗?
【问题讨论】:
我有一个包含以下内容的 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)
【讨论】: