我想解析来自此url
的xml数据我写了这样的代码: -
NSString *escapedURL = @"http://www.google.com/ig/api?weather=%22Dr%20Vikram%20Sarabhai%20Marg%20Panchavati%20Society%20Gulabai%20Tekra%20Ahmedabad%20Gujarat%20India%22&hl=hr";
xmlParser = [[NSXMLParser alloc] initWithContentsOfURL:[NSURL URLWithString:escapedURL]];;
[xmlParser setDelegate:self];
[xmlParser setShouldProcessNamespaces:NO];
[xmlParser setShouldReportNamespacePrefixes:NO];
[xmlParser setShouldResolveExternalEntities:NO];
[xmlParser parse];
- (void)parserDidStartDocument:(NSXMLParser *)parser
{
NSLog(@"Document started", nil);
currentElement = nil;
}
- (void)parser:(NSXMLParser *)parser parseErrorOccurred:(NSError *)parseError
{
NSLog(@"Error: %@", [parseError localizedDescription]);
}
- (void)parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName
namespaceURI:(NSString *)namespaceURI
qualifiedName:(NSString *)qName
attributes:(NSDictionary *)attributeDict
{
[currentElement release];
currentElement = [elementName copy];
currentName = [[NSMutableString alloc] init];
//For temeprature
if ([currentElement isEqualToString:@"forecast_information"])
{
}
else if ([currentElement isEqualToString:@"current_conditions"])
{
}
else if ([currentElement isEqualToString:@"temp_c"])
{
//NSLog(@"attributeDict==>%@",[attributeDict objectForKey:@"data"]);
LblTemperature.text=[NSString stringWithFormat:@"Ahmedabad %@°",[attributeDict objectForKey:@"data"]];
}
}
- (void)parser:(NSXMLParser *)parser didEndElement:(NSString *)elementName
namespaceURI:(NSString *)namespaceURI
qualifiedName:(NSString *)qName
{
if ([elementName isEqualToString:@"temp_c"])
{
//NSLog(@"temp_c: %@", currentName);
}
}
- (void)parser:(NSXMLParser *)parser foundCharacters:(NSString *)string
{
if ([currentElement isEqualToString:@"temp_c"])
{
[currentName appendString:string];
//NSLog(@"==>%@",string);
}
}
- (void)parserDidEndDocument:(NSXMLParser *)parser
{
NSLog(@"Document finished");
}
但是我无法在此解析中获取temp_c的数据。 我得到的元素名称是: - xml_api_reply 天气 forecast_information 市 邮政编码 纬度_e6 经度_e6 forecast_date current_date_time unit_system current_conditions
请帮帮我..
答案 0 :(得分:1)
好吧,您可以使用XPathQuery来解析XML。它会让你的生活更轻松。这是XPathQuery类的链接和教程。
http://cocoawithlove.com/2008/10/using-libxml2-for-parsing-and-xpath.html
看看它,如果你愿意使用它,但仍然不明白,请评论。