2013-08-21 3 views
-1

J'ai besoin d'aide pour analyser la réponse de données. Lorsque j'envoie paramètre au service Web puis service Web fournira des données en réponse Je suis habitué wsdl2objcParse XML Réponse de données

for(; cur != NULL ; cur = cur->next) { 
      if(cur->type == XML_ELEMENT_NODE) { 

       if(xmlStrEqual(cur->name, (const xmlChar *) "Body")) { 
        NSMutableArray *responseBodyParts = [NSMutableArray array]; 

        xmlNodePtr bodyNode; 
        for(bodyNode=cur->children ; bodyNode != NULL ; bodyNode = bodyNode->next) { 
         if(cur->type == XML_ELEMENT_NODE) { 
          if(xmlStrEqual(bodyNode->name, (const xmlChar *) "selectDataReturn")) { 
           NSString *bodyObject = [NSString deserializeNode:bodyNode]; 

           if (bodyObject != nil) [responseBodyParts addObject:bodyObject]; 


          } 

          if (xmlStrEqual(bodyNode->ns->prefix, cur->ns->prefix) && 
           xmlStrEqual(bodyNode->name, (const xmlChar *) "Fault")) { 
           SOAPFault *bodyObject = [SOAPFault deserializeNode:bodyNode]; 

           if (bodyObject != nil) [responseBodyParts addObject:bodyObject]; 

          } 
         } 
        } 

        response.bodyParts = responseBodyParts; 

        //bodyParts is my data. 

       } 
      } 
     } 

Mais mes Bodyparts réponse à moi:

<?xml version='1.0' encoding='UTF-8'?><EISDataRS><EISDataRecord><RECSEQ>1</RECSEQ><INPUT_DATE>201201</INPUT_DATE><PREFIX_BU>AAA</PREFIX_BU><INDEX_LEVEL>10000</INDEX_LEVEL><CF>83.94</CF></EISDataRecord><EISDataRecord><RECSEQ>2</RECSEQ><INPUT_DATE>201201</INPUT_DATE><PREFIX_BU>AAA</PREFIX_BU><INDEX_LEVEL>20100</INDEX_LEVEL><CF>73.94</CF></EISDataRecord><EISDataRecord><RECSEQ>1</RECSEQ><INPUT_DATE>201201</INPUT_DATE><PREFIX_BU>AAA</PREFIX_BU><INDEX_LEVEL>22100</INDEX_LEVEL><CF>57.44</CF></EISDataRecord></EISDataRS> 

Comment je peux analyser les données en wsdl2objc ou comment dois-je analyser sur resp.bodyParts dans le contrôleur de vue J'ai juste besoin de données de texte seulement S'il vous plaît avis. Merci.

+0

Avez-vous fait des recherches? Il existe un grand nombre de ressources existantes sur la façon d'analyser un fichier XML dans iOS. S'il vous plaît faire une recherche en commençant par toutes les questions connexes à la vôtre. – rmaddy

+0

duplication possible de [Parsing xml dans NSXMLParser] (http://stackoverflow.com/questions/8813968/parsing-xml-in-nsxmlparser) – rmaddy

+0

J'utilise wsdl2objc pour analyser des données mais je ne sais pas éditer wsdl2objc –

Répondre

0

Si vous souhaitez analyser des données XML, consultez XMLDictionary.

Il s'agit d'un framework simple qui analyse facilement vos données dans une hiérarchie ordonnée de NSDictionaries et de NSArrays.

https://github.com/nicklockwood/XMLDictionary

0

J'ai eu le même problème et je l'ai fixé en analysant le nom correct du corps.

Dans votre code, essayez de remplacer "selectDataReturn" par "EISDataRS". Parce que de votre réponse, je peux voir EISDataRS est votre enfant.