如何从XML获取值
问题描述:
我想在我的项目中使用谷歌天气API。 here我很久没有挣扎了。获取当前温度。城市,湿度,星期几等如何从XML获取值
我成功地打了网址。但我不知道我在findCharacter方法中做了什么来获取值。
感谢
- (void) parser:(NSXMLParser *)parser didStartElement:(NSString *)elementname namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName attributes:(NSDictionary *)attributeDict{
if ([elementname isEqualToString:@"weather"])
{
currentTweet = [Tweet alloc];
}
}
- (void) parser:(NSXMLParser *)parser didEndElement:(NSString *)elementname namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName{
if ([elementname isEqualToString:@"city"])
{
}
}
答
请检查代码:
- (void) parser:(NSXMLParser *)parser didStartElement:(NSString *)elementname namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName attributes:(NSDictionary *)attributeDict
{
if ([elementname isEqualToString:@"weather"])
{
currentTweet = [Tweet alloc];
}
else if ([elementname isEqualToString:@"city"])
{
currentTweet.city = [attributeDict valueForKey:@"city"]
}
}
- (void) parser:(NSXMLParser *)parser didEndElement:(NSString *)elementname namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName
{
if ([elementname isEqualToString:@"weather"])
{
NSLog("Current City: %@",currentTweet.city);
}
}
对于这种类型的XML,你不想使用从NSXMLPareser参考指南,了解有关foundCharacters
的parser:foundCharacters:
报价方法:
由解析器对象发送,为其委托提供一个字符串 ,表示当前元素的全部或部分字符。
解析器对象可能会向代理发送若干个 解析器:foundCharacters:消息来报告 元素的字符。因为字符串可能只是当前元素的总字符内容的一部分,所以您应该将其附加到字符当前的 堆积中,直到元素更改。
有关详细信息:NSXML Parser Reference, Working of parser,foundCharacters
use