在Oracle DBMS_XMLDOM包中获取XML元素值

Ser*_*sov 5 oracle oracle11g xml-parsing

我有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>
Run Code Online (Sandbox Code Playgroud)

我正在使用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;
Run Code Online (Sandbox Code Playgroud)

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

Ser*_*sov 1

我找到了我正在寻找的东西:

...
v_doc := dbms_xmldom.newdomdocument(v_clob);
v_nodelist := dbms_xmldom.getelementsbytagname(v_doc, 'persons');
v_node := dbms_xmldom.getfirstchild(dbms_xmldom.item(v_nodelist, 0));
v_person := dbms_xmldom.getnodevalue(v_node);
...
Run Code Online (Sandbox Code Playgroud)