DBMS_XMLDOM - 如何获取ID节点?

时间:2015-11-17 15:55:20

标签: oracle plsql plsqldeveloper

我正在尝试使用DBMS_XMLDOM获取XML节点的ID值,但我不知道如何...

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
    <soapenv:Body>
        <ns2:instrumentosjuridicosActualizacionRespuesta xmlns:ns2="http://dcf.formacion.sepe.es/">
            <origenSolicitud>10</origenSolicitud>
            <retorno>EXCOM000</retorno>
            <descripcion>Éxito en la operación</descripcion>
            <retornoOperacion idBloque="1"><codigo>EXCOM001</codigo><descripcion>Éxito en la operación 1</descripcion></retornoOperacion>
            <retornoOperacion idBloque="2"><codigo>EXCOM002</codigo><descripcion>Éxito en la operación 2</descripcion></retornoOperacion>
        </ns2:instrumentosjuridicosActualizacionRespuesta>
    </soapenv:Body>
</soapenv:Envelope>

我得到节点“retornoOperacion”

v_nodelist := xslprocessor.selectnodes (xmldom.makenode (v_doc), '//retornoOperacion');

然后我可以获得“codigo”和“descripcion”项目

v_node := xmldom.item (v_nodelist, i);
v_item := xslprocessor.valueof (v_node, 'codigo');
v_item := xslprocessor.valueof (v_node, 'descripcion');

但我想要idBloque的价值。所以我想要值“1”和“2”...

有人知道吗?

1 个答案:

答案 0 :(得分:0)

如果您想要节点v_node的{​​{1}}属性的值,请使用以下内容:

v_item := dbms_xslprocessor.valueof (v_node, '@idBloque');

XPath表达式中的at符号(@)用于表示您希望该属性的值具有后面的名称。