Est-ce que quelqu'un sait comment récupérer les valeurs de <ZIPCODE>
et <CITY>
en utilisant PL/SQL? J'ai suivi un tutoriel sur le net, cependant, il peut récupérer les noms des éléments, mais pas leurs valeurs. L'un d'entre vous sait ce qui semble être le problème? Je l'ai déjà consulté Google (le secret bien gardé Internet) sur cela, mais pas de chance :(Récupérer la valeur d'un élément XML dans Oracle PL SQL
<Zipcodes>
<mappings Record="4">
<STATE_ABBREVIATION>CA</STATE_ABBREVIATION>
<ZIPCODE>94301</ZIPCODE>
<CITY>Palo Alto</CITY>
</mappings>
</Zipcodes>
est ici l'exemple de code:
-- 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;
Personnellement, je préfère utiliser XMLType et utiliser la fonction Extract pour les obtenir via XPath. par exemple. 'myxml.Extract ('/ Zipcodes/mappings/ZIPCODE/text()');' - doit être plus simple que de marcher sur le DOM. –