XML problem on appendChild

From: Ray <sol_helios_at_hongkong.com>
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

Original text of this message