我正在获得SOAP响应,在解析响应时,我得到了这样的结果:(从结果中可以看出,当前存储为NSString的NSLoged本身包含xml格式数据)
<Menus>
<Table1>
<Restaurant_Name>CHICK-FIL-A</Restaurant_Name>
<Restaurant_id>2748</Restaurant_id>
<Phone>(404) 371-1466</Phone>
<billing_city>DECATUR</billing_city>
<billing_state>GA</billing_state>
<billing_zip_code>30030</billing_zip_code>
<billing_addr1>105 EAST TRINITY PLACE</billing_addr1>
</Table1>
</Menus>
上述生成响应的代码:
-(void)parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qualifiedName attributes:(NSDictionary *)attributeDict{
if([elementName isEqualToString:@"GetMenusByZipCodeResult"])
{
if(!soapResults)
{
soapResults = [[NSMutableString alloc] init];
}
recordResults = TRUE;
}
}
-(void)parser:(NSXMLParser *)parser foundCharacters:(NSString *)string
{
if(recordResults)
{
[soapResults appendString:string];
}
//NSLog(@" soap: %@", soapResults);
}
-(void)parser:(NSXMLParser *)parser didEndElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qualifiedName
{
if([elementName isEqualToString:@"GetMenusByZipCodeResult"])
{
NSLog(@"soapResult FINAL : %@",soapResults);
recordResults = FALSE;
result.text = soapResults;
[soapResults release];
soapResults = nil;
}
}
上述数据是soapResult的结果。 如何阅读这些数据?我试图重新解析它,但它没有帮助。 请帮帮我。
答案 0 :(得分:2)
使用像NSXMLParser
这样的XML解析器答案 1 :(得分:2)
如果您想要一个简单的XML到NSDictionary转换器(包括文本节点),请查看http://troybrant.net/blog/2010/09/simple-xml-to-nsdictionary-converter/