XML problem on appendChild
Date: 4 Jul 2002 20:56:04 -0700
Message-ID: <d781863.0207041956.1e863c94_at_posting.google.com>
I am using PL/SQL to reconstruct a DomDocument and expecting to obtain the result like the follows:
Source:
<?xml version = '1.0'>
<ROWSET>
<ROW num="1">
<EMP_NO>7782</EMP_NO>
<NAME>CLARK</NAME>
</ROW>
</ROWSET>
Result:
<?xml version = '1.0'>
<ROWSET>
<LANG num="1">
<ROW num="1">
<EMP_NO>7782</EMP_NO>
<NAME>CLARK</NAME>
</ROW> </LANG> <LANG num="2"> <ROW num="1">
<EMP_NO>7839</EMP_NO>
<NAME>KING</NAME>
</ROW> </LANG>
<LANG num="3">
<ROW num="1">
<EMP_NO>7934</EMP_NO>
<NAME>MILLER</NAME>
</ROW>
</LANG>
</ROWSET>
newdoc := Xmldom.newDOMDocument;
main_node := Xmldom.makeNode(newdoc); root_elmt := Xmldom.createElement(newdoc, 'ROWSETS'); root_node := Xmldom.appendChild(main_node,Xmldom.makeNode(root_elmt));
OPEN lang_cur FOR
SELECT LANG_ID FROM LANGUAGE_CODE;
LOOP
FETCH lang_cur INTO iLangID; EXIT WHEN lang_cur%NOTFOUND; dbms_output.PUT_LINE('LangID:' || iLangID); sTmp := xmlgen.getxml('select * from testing_table'); IF iCounter>1 THEN XML_Parser2 :=Xmlparser.newparser; Xmlparser.parseClob(XML_Parser2,sTmp); theXMLDoc2:=Xmlparser.getDocument(XML_Parser2); lUpdateList2 := Xpath.selectNodes(theXMLDoc2,'.'); IF NOT Xmldom.IsNull(Xmldom.item(lUpdateList2, 0)) THEN oNODE2 := Xmldom.item(lUpdateList2, 0); item_elmt := Xmldom.createElement(xmldom.makedocument(oNODE2), 'Lang_' || iLangID); root_node := Xmldom.appendChild(root_node, Xmldom.makeNode(item_elmt)); END IF; Xmlparser.freeParser(XML_Parser2); ELSE XML_Parser :=Xmlparser.newparser; Xmlparser.parseClob(XML_Parser,sTmp); theXMLDoc:=Xmlparser.getDocument(XML_Parser); lUpdateList := Xpath.selectNodes(theXMLDoc,'.'); dbms_output.PUT_LINE('Length: ' || Xmldom.getLength(lUpdateList)); IF NOT Xmldom.IsNull(Xmldom.item(lUpdateList, 0)) THEN oNODE := Xmldom.item(lUpdateList, 0); dbms_output.PUT_LINE('NOT NULL'); item_elmt := Xmldom.createElement(xmldom.makedocument(oNODE), 'Lang_' || iLangID); root_node := Xmldom.appendChild(root_node, Xmldom.makeNode(item_elmt)); END IF; Xmlparser.freeParser(XML_Parser); END IF; iCounter := iCounter + 1;
END LOOP;
CLOSE lang_cur;
However, I got the error Message "ORA-06510: PL/SQL: unhandled user-defined exception" on the appendchild clause. Would anyone answer me this question? Thx a lot.
Thx,
Helios
Received on Fri Jul 05 2002 - 05:56:04 CEST