Кто-нибудь знает, как получить значения <ZIPCODE>
и <CITY>
с использованием PL/SQL? Я следил за учебником по сети, однако он может извлекать имена элементов, но не их значения. Кто-нибудь из вас знает, какая проблема? Я уже консультировался Google (хорошо держится в секрете Интернета) по этому поводу, но не повезло :(Извлечь значение элемента xml в Oracle PL SQL
<Zipcodes>
<mappings Record="4">
<STATE_ABBREVIATION>CA</STATE_ABBREVIATION>
<ZIPCODE>94301</ZIPCODE>
<CITY>Palo Alto</CITY>
</mappings>
</Zipcodes>
вот пример кода:
-- 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;
Лично я предпочитаю использовать XMLType и использовать функцию Extract для их получения через XPath. например 'myxml.Extract ('/ Zipcodes/mappings/ZIPCODE/text()');' - должен быть проще, чем ходить по DOM. –