我有
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;