2015-11-17 4 views
0

Я пытаюсь получить значение идентификатора узла XML с DBMS_XMLDOM, но я не знаю, как ...DBMS_XMLDOM - Как получить идентификатор узла?

<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» ...

Кто-нибудь знает как?

ответ

0

Если вы хотите, чтобы значение атрибута узла v_nodeidBloque, то используйте следующее:

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

на-знак (@) в выражении XPath используется для указания того, что вы хотите получить значение атрибута с последующим именем.