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
ForceComForceCom 

Parse Xml Response----Urgent!!!!

Hi 

 

I am trying to parse the xml response as found below, but i am facing difficulty in parsing this using Xml Dom class....I am totally stuck here , any help , examples , solutions are  totally appreciated.

 

 
<?xml version="1.0" encoding="UTF-8"?>
<Service_User generator="zend" version="1.0">
<get_user_grades>
<users>
<id_35>
<user>
<id>35</id>
<fullname>SamSmith</fullname>
<username>test@erx.com</username>
<idnumber>003K0000002M9xJIAS</idnumber>
</user>
</id_35>
</users>
<courses>
<id_13>
<course>
<id>13</id>
<fullname>EDTC-5100: Fake Course</fullname>
<shortname>5100</shortname>
<idnumber>
</idnumber>
</course>
</id_13>
</courses>
<gradeitems>
<gradeitem>
<courseid>13</courseid>
<itemtype>mod</itemtype>
<itemname>Assessment 1 - Test Quiz A</itemname>
<itemmodule>quiz</itemmodule>
<iteminstance>10</iteminstance>
<grades>
<grade>
<id>29</id>
<userid>35</userid>
<registrationid></registrationid>
<finalgrade>90.00000</finalgrade>
<gradeletter>A-</gradeletter>
<gradepercent>90.00 %</gradepercent>
<timemodified>1317928200</timemodified>
<deleted>0</deleted>
</grade>
</grades>
</gradeitem>
</get_user_grades>
</Service_User>

 

Thanks
sdetweilsdetweil

this is some apex code I use to parse an xml document

 

        HttpResponse res;
        
        Http http = new Http();
        HttpRequest req = new HttpRequest();
                
        // get the root document link to the catalog
        
        req.setEndpoint(settings[0].ServerAddress__c+settings[0].BaseDocument__c);        
        req.setMethod('GET');
        res = http.send(req); 
        if(res.getStatusCode()==200)
        {
            // get the providers element
            Dom.XMLNode providers = res.getBodyDocument().getRootElement().getChildElement('cmServiceProviders', 'http://open-services.net/xmlns/cm/1.0/');
            // and the catalog URL
            String attr=providers.getAttributeValue('resource','http://www.w3.org/1999/02/22-rdf-syntax-ns#');
 DOM.XMLNode serviceslist = res.getBodydocument().getRootElement();
                         //System.debug(serviceslist);
                         Dom.XMLNode changeRequests = serviceslist.getChildElement('changeRequests','http://open-services.net/xmlns/cm/1.0/');
                         //System.debug(changeRequests);
                         Dom.XMLNode workitemFactory = changeRequests.getChildElement('factory','http://open-services.net/xmlns/cm/1.0/');
                         String workitemCreateUrl;
                         if(workitemFactory.getAttributeValue('default','http://open-services.net/xmlns/cm/1.0/')=='true')
                         {
                             workitemCreateUrl = workitemFactory.getChildElement('url','http://open-services.net/xmlns/cm/1.0/').getText();
                             system.debug(workitemCreateUrl);
                         }
                         String workitemQueryURL = (changeRequests.getChildElement('simpleQuery','http://open-services.net/xmlns/cm/1.0/')).getChildElement('url','http://open-services.net/xmlns/cm/1.0/').getText();