我需要帮助来解析数据响应。 当我向Web服务发送参数时,Web服务将提供响应数据 我用的是wsdl2objc
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.
}
}
}
但是我的身体回应了我:
<?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>
我如何解析wsdl2objc中的数据或如何解析视图控制器中的resp.bodyParts 我只需要文本数据 请指教。 感谢。
答案 0 :(得分:0)
如果要解析XML数据,请查看XMLDictionary。
这是一个简单的框架,可以轻松地将您的数据解析为NSDictionaries和NSArrays的整齐有序的层次结构。
答案 1 :(得分:0)
我有同样的问题,我通过解析正确的正文名称来修复它。
在您的代码中,尝试替换&#34; selectDataReturn&#34;使用&#34; EISDataRS&#34;。因为根据您的回复,我可以看到EISDataRS是您的孩子。