Hi,
 
I have a XML input like following.
<Data>
 <part id="Part_1">
  <part_1_item>value</part_1_item>
 </part>
 <part id="Part_2">
  <item>value</item>
  <item>value</item>
 </part>
 <part id="Part_2">
  <item>value</item>
  <item>value</item>
 </part>
 <part id="Part_3">
  <item_3>value</item_3>
 </part>
</Data>

I want to generate the XML output like following
<New>
   <Data>
 <part id="Part_1">
  <part_1_item>value</part_1_item>
 </part>
 <part id="Part_2">
  <item>abc</item>
  <item>xyz</item>
 </part>
 <part id="Part_2">
  <item>AABBCC</item>
  <item>xxyyzz</item>
 </part>
 <part id="Part_3">
  <item_3>test</item_3>
 </part>
   </Data>
</New>
 
In my code, I have following lines but does not work well.
 
DECLARE myref REFERENCE TO InputRoot.XML.Data.part[];
WHILE LASTMOVE(myref) = TRUE DO
   IF UPPER(myref.(XML.attr)id) = 'PART_1' THEN   
 SET OutputRoot.XML.New.Data.part.(XML.attr)id = 'Part_1';
 SET OutputRoot.XML.New.Data.part.part_1_item = myref.part_1_item;
   ELSE
 IF UPPER(myref.(XML.attr)id) = 'PART_2' THEN
    SET OutputRoot.XML.New.Data.part.(XML.attr)id = 'Part_2';
  SET OutputRoot.XML.New.Data.part.item = 'abc';
  SET OutputRoot.XML.New.Data.part.item = 'xyz';
 ELSE
    IF UPPER(partyref.(XML.attr)ID) = 'PARTY_3' THEN   
  SET OutputRoot.XML.New.Data.part.(XML.attr)id = 'Part_3';
  SET OutputRoot.XML.New.Data.part.item_3 = 'test';
    END IF;
 END IF;
   END IF;
   MOVE myref NEXTSIBLING;
END WHILE;

However, I only got following result.
<New>
   <Data>
 <part id="Part_1">
  <part_1_item>value</part_1_item>
 </part>
   </Data>
</New>
 
Could anybody tell me what's wrong here?
 
Thanks.
Mike


Do you Yahoo!?
The New Yahoo! Search - Faster. Easier. Bingo.

Reply via email to