PLSQL从XML读取值?
发布时间:2020-12-15 23:55:56 所属栏目:百科 来源:网络整理
导读:我有一个带有 XML代码的字符串,我想从PL / SQL中将一个值提取到一个变量中. XML非常简单,与此不同: s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/" s:Body SOAProxyResponse xmlns="http://tempuri.org/" SOAProxyResult There is 23142
我有一个带有
XML代码的字符串,我想从PL / SQL中将一个值提取到一个变量中.
XML非常简单,与此不同: <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 我怎么能得到“有23142个文件!”的价值.在上面的例子中变成一个变量?
您可以使用
EXTRACTVALUE 功能获取此值.此函数需要两个或三个参数:
>包含XML文档的XMLTYPE对象. 在下面的查询中,我将上面提到的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/.这是必要的,因为XML文档中的SOAProxyResult元素位于此命名空间内. 如果我运行此查询,我会得到以下输出: RESULT -------------------------------------------------------------------------------- There is 23142 Files! 从这里开始,希望将此查询的结果放入变量中是一项微不足道的修改. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |