Skip to Main Content

DevOps, CI/CD and Automation

Announcement

For appeals, questions and feedback about Oracle Forums, please email oracle-forums-moderators_us@oracle.com. Technical questions should be asked in the appropriate category. Thank you!

parsing xml child nodes and inserting into table

377144Jun 24 2005 — edited Jan 5 2011
hi all,

I was able to parse a xml document from http url and was able to get some child nodes(printed on dbms_output) in a loop from the document.now I want to insert two child nodes to loop through the documents and place it in the oracle table directly.Can anyone give me a hint or guide me ,,how to do this in pl/sql?

HERE IS MY CODE


CREATE OR REPLACE PACKAGE BODY XRATESDLOAD AS

PROCEDURE XRATESDLOADP
IS

--lv_RatesTable utl_http.html_pieces;
--lv_start_pos number := 0;
--lv_record_ind varchar2(1) := 'N';




orderURL VARCHAR2(80);
parser xmlparser.Parser;
orderXML xmldom.DOMDocument;
csymbol xmldom.DOMNodeList;
crate xmldom.DOMNodeList;
orders_found NUMBER;
curNode xmldom.DOMNode;
curNode2 xmldom.DOMNode;
textName xmldom.DOMNode;
textName2 xmldom.DOMNode;
begin
dbms_output.put_line( 'BEFORE Orders processed on '||to_char(sysdate, 'YYYY-MON-DD'));

--orderURL := 'http://www.xe.com/dfs/sample-gbp.xml';

parser := xmlparser.newParser ;

--orderXML := xmlparser.parse( orderURL );
xmlparser.parse( parser,'http://www.xe.com/dfs/sample-gbp.xml' );
orderXML := xmlparser.getDocument(parser);
xmlparser.freeParser( parser );


dbms_output.put_line( 'Orders processed on '||to_char(sysdate, 'YYYY-MON-DD'));

csymbol := xmldom.getElementsByTagName( orderXML, 'csymbol' );
crate := xmldom.getElementsByTagName( orderXML, 'crate' );

-- loop for customer
for x in 1..xmldom.getLength(csymbol) loop
--for x in 1..10 loop
curNode := xmldom.item(csymbol, x-1 );
textName := xmldom.getFirstChild( curNode );
dbms_output.put_line( 'Currency Symbol: '||xmldom.getNodeValue( textName ) );


curNode2 := xmldom.item(crate, x-1 );
textName2 := xmldom.getFirstChild( curNode2 );
dbms_output.put_line( 'Currency Rate: '||xmldom.getNodeValue( textName2 ) );


--HERE AM TRYING TO INSERT THE NODES DIRECTLY INTO TABLE CNA_XRATES_TEXT BUT ITS NOT WORKING LIKE THIS..?
--insert into cna_xrates_text values(xmldom.getNodeValue( textName ),xmldom.getNodeValue( textName2 ));



-- loop within the order to get products ordered
-- for y in 1..get loop
-- end loop;

end loop;

xmldom.freeDocument( orderXML );






END XRATESDLOADP;
END XRATESDLOAD;
/
Comments
Locked Post
New comments cannot be posted to this locked post.
Post Details
Locked on Feb 2 2011
Added on Jun 24 2005
7 comments
7,547 views