¿Alguien sabe cómo recuperar los valores de <ZIPCODE>
y <CITY>
usando PL/SQL? He seguido un tutorial en la red, sin embargo, puede recuperar los nombres de los elementos, pero no sus valores. ¿Alguno de ustedes sabe lo que parece ser el problema? Ya he consultado Google (secreto bien guardado de internet) sobre esto, pero sin suerte :(Recuperar el valor de un elemento xml en Oracle PL SQL
<Zipcodes>
<mappings Record="4">
<STATE_ABBREVIATION>CA</STATE_ABBREVIATION>
<ZIPCODE>94301</ZIPCODE>
<CITY>Palo Alto</CITY>
</mappings>
</Zipcodes>
aquí está el código de ejemplo:
-- prints elements in a document
PROCEDURE printElements(doc DBMS_XMLDOM.DOMDocument) IS
nl DBMS_XMLDOM.DOMNodeList;
n DBMS_XMLDOM.DOMNode;
len number;
BEGIN
-- get all elements
nl := DBMS_XMLDOM.getElementsByTagName(doc, '*');
len := DBMS_XMLDOM.getLength(nl);
-- loop through elements
FOR i IN 0 .. len - 1 LOOP
n := DBMS_XMLDOM.item(nl, i);
testr := DBMS_XMLDOM.getNodeName(n) || ' ' || DBMS_XMLDOM.getNodeValue(n);
DBMS_OUTPUT.PUT_LINE (testr);
END LOOP;
DBMS_OUTPUT.PUT_LINE ('');
END printElements;
Personalmente, prefiero usar XMLType y usar la función Extraer para obtenerlos a través de XPath. p.ej. 'myxml.Extract ('/ Zipcodes/mappings/ZIPCODE/text()');' - debe ser más simple que recorrer el DOM. –