您可以使用该EXTRACTVALUE
函数来获取此值。这个函数有两个或三个参数:
- 一个包含 XML 文档的 XMLTYPE 对象。
- 一个 XPath 表达式,用于标识我们想要的值在 XML 中的位置。
- (可选)将命名空间前缀绑定到 URI 的额外字符串。
在下面的查询中,我将您在上面提供的 XML 作为一个字符串,并从中创建了一个 XMLTYPE 对象。然后我EXTRACTVALUE
用来获取您要求的值:
SELECT EXTRACTVALUE(XMLTYPE(
'<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
<s:Body>
<SOAProxyResponse xmlns="http://tempuri.org/">
<SOAProxyResult>
There is 23142 Files!
</SOAProxyResult>
</SOAProxyResponse>
</s:Body>
</s:Envelope>'), '//SOAProxyResult', 'xmlns="http://tempuri.org/"') AS result
FROM dual;
XPath 表达式//SOAProxyResult
仅返回SOAProxyResult
文档中的所有元素。第三个参数EXTRACTVALUE
将默认命名空间绑定到http://tempuri.org/
. 这是必要的,因为SOAProxyResult
您的 XML 文档中的元素位于此名称空间中。
如果我运行这个查询,我会得到以下输出:
结果
-------------------------------------------------- ------------------------------
有23142个文件!
从这里开始,将这个查询的结果放入一个变量应该是一个微不足道的修改。