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
