加入收藏 | 设为首页 | 会员中心 | 我要投稿 辽源站长网 (https://www.0437zz.com/)- 云专线、云连接、智能数据、边缘计算、数据安全!
当前位置: 首页 > 站长百科 > 正文

在Oracle DBMS_XMLDOM包中获取XML元素值

发布时间:2021-03-06 18:22:47 所属栏目:站长百科 来源:网络整理
导读:我有 XML文件存储在DB中表的clob列中. ?xml version="1.0" encoding="UTF-8"?document row organizationasdklfjas;kldfj;LASKJFAS/organization phonessjhdfhjaghjskfg/phones personshkjg/persons /row /document 我正在使用DBMS_XMLDOM包进行解析. declare

我有 XML文件存储在DB中表的clob列中.

<?xml version="1.0" encoding="UTF-8"?>
<document>
  <row>
    <organization>asdklfjas;kldfj;LASKJFAS</organization>
    <phones>sjhdfhjaghjskfg</phones>
    <persons>hkjg</persons>
  </row>                                                  
</document>

我正在使用DBMS_XMLDOM包进行解析.

declare
  v_clob clob;
  v_doc dbms_xmldom.domdocument;
begin
  ...
  v_doc := dbms_xmldom.newdomdocument(v_clob);
  v_domelement := dbms_xmldom.getdocumentelement(v_doc);
  ...
end;

我只需要从某个元素中获取值,例如< persons>.我该怎么做?

解决方法

还可以选择将XslProcessor函数与XPath一起使用:

DECLARE
  v_Clob CLOB;
  v_Doc XmlDom.DomDocument;
  v_RootNode XmlDom.DomNode;
  v_Value VARCHAR2(128);
BEGIN
  ...

  v_Doc := XmlDom.NewDomDocument(v_Clob);
  v_RootNode := XmlDom.MakeNode(XmlDom.GetDocumentElement(v_Doc));
  v_Value := XmlDom.GetNodeValue(
    XslProcessor.SelectSingleNode(v_RootNode,'/document/row[1]/persons/text()'));

  ...
END;

(编辑:辽源站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读