我想在我的项目中使用google weather api。 here我很长时间都在苦苦挣扎。获得当前的温度。城市,湿度,星期等等。
我成功点击了网址。但我不知道我在foundCharacter方法中做了什么来获取值。
由于
- (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"])
{
}
}
答案 0 :(得分:1)
请检查代码:
- (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,您不想使用parser:foundCharacters:
引用NSXMLPareser参考指南,了解foundCharacters
方法:
由解析器对象发送,以便为其委托提供字符串 表示当前元素的全部或部分字符。
解析器对象可以发送几个委托 parser:foundCharacters:报告一个字符的消息 元件。因为字符串可能只是整个字符的一部分 当前元素的内容,您应该将其附加到当前元素 字符的积累直到元素改变。
有关详细信息:NSXML Parser Reference,
Working of parser,foundCharacters
use