function readOnly(count){ }
Starting November 20, the site will be set to read-only. On December 4, 2023,
forum discussions will move to the Trailblazer Community.
+ Start a Discussion
Nagesh ENagesh E 

Parsing XML

I am trying parse below XML.

 

</YourMembership_Response>

<YourMembership_Response>
<ErrCode>0</ErrCode>
<Sa.NonMembers.All.GetIDs>
<ServerGmtBias>-4</ServerGmtBias>
<ServerTime>2011-09-14 12:21:35</ServerTime>
<NonMembers>
<ID>1A482818-D766-4C43-B11E-6BFDE5C79021</ID>
<ID>3457A523-27AD-4436-B303-90C83DF97695</ID>
<ID>CAA0950F-4FE0-4792-8EC0-671841E8F94E</ID>
<ID>7D05F8EF-140D-4548-A87D-6905616ED570</ID>
<ID>B2B9E9E0-BEA2-48F0-81FD-19501A9D7C7B</ID>
<ID>65466DD4-7670-49FF-9E59-05295CC47606</ID>
<ID>C1F264FA-E1F0-4526-B01D-4364CED1A4D1</ID>
<ID>B3656FBE-EC31-4529-9400-E351A135A239</ID>
<ID>0F15329D-B2D8-4348-9295-888B0AC9C36B</ID>
<ID>203730C6-93CD-46EB-948B-B7849D808EFA</ID>
<ID>0690E245-E22D-41C8-9355-189DCE003BE1</ID>
<ID>BDF1D4F1-B3D0-4C3A-B024-A84FBF550CD5</ID>
<ID>F7221900-3B9E-4FE0-9D22-270B9B96F298</ID>
</NonMembers>
</Sa.NonMembers.All.GetIDs> 
I need all the ID's into List.. I am trying to do by using for(Dom.XMLNode child : Body.getChildElements()) which is not returing any thing. I need some ideas how to parse XML 
 
Thanks
NASH
BritishBoyinDCBritishBoyinDC

I think there maybe a problem with the XML - doesn't seem to close the YourMembership_Response tag?

 

Anyway, if you do close that, this works...

 

//Build sample XML to test with

String s = '';
s += '<YourMembership_Response>';
s += '<ErrCode>0</ErrCode>';
s += '<Sa.NonMembers.All.GetIDs>';
s += '<ServerGmtBias>-4</ServerGmtBias>';
s += '<ServerTime>2011-09-14 12:21:35</ServerTime>';
s += '<NonMembers>';
s += '<ID>1A482818-D766-4C43-B11E-6BFDE5C79021</ID>';
s += '<ID>3457A523-27AD-4436-B303-90C83DF97695</ID>';
s += '</NonMembers>';
s += '</Sa.NonMembers.All.GetIDs>';
s += '</YourMembership_Response>';

//I used a set but you can use a list as well of course
Set<String> listofids = new Set<String> ();

//Convert String to XML - if you are getting a response in XML you can skip this bit
Dom.Document docx = new Dom.Document();
docx.load(s);

//Loop through XML hierarchy
dom.XmlNode xroot = docx.getrootelement() ;
dom.XmlNode xr = xroot.getchildelement('Sa.NonMembers.All.GetIDs', null) ; //Level 2

dom.XmlNode [] xrec = xr.getchildelements() ; //Get all Id Elements

for(Dom.XMLNode child : xrec) //Loop Through Records
{
    dom.XmlNode [] xrecords = child.getchildelements() ;
       
        for(Dom.XMLNode childr : xrecords )   {
listofids.add(childr.gettext());
 }
        

}
        
system.debug('LIST' + listofids);

 

Avula ReddyAvula Reddy
How to expose the listofids on front end using VF?