iphone - 如何从 XML 中获取值

标签 iphone ios delegates xml-parsing nsxmlparser

我想在我的项目中使用 google weather api。 here我很长一段时间都在挣扎。获取当前温度。城市、湿度、星期几等

我成功地访问了 url。但我不知道我在 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"]) 
     {

     }
 }

最佳答案

请检查代码:

- (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 方法的引述:

Sent by a parser object to provide its delegate with a string representing all or part of the characters of the current element.

The parser object may send the delegate several parser:foundCharacters: messages to report the characters of an element. Because string may be only part of the total character content for the current element, you should append it to the current accumulation of characters until the element changes.

更多详情:NSXML Parser Reference , Working of parser , foundCharacters use

关于iphone - 如何从 XML 中获取值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11654442/

相关文章:

ios - 如何在 iOS 中使用 React Native 保存下载的文件并在文件应用程序中查看?

android - 使用 nodejs 相应地重定向到 PlayStore 或 AppStore 的公共(public)链接

ios - mp2格式的文件无法播放iPhone应用程序

iphone - 同一个委托(delegate)上的多个 UIActionSheets

c# - Action<T> 等效于属性

ios - 压缩 UIImage

iphone - iOS - Facebook SDK 3.1.1 构建失败 armv7

iphone - 如何对旋转 View 进行抗锯齿处理?

ios - NSDictionary 枚举导致 "malloc: double free"错误

asp.net - 从通用处理程序 (.ashx) 进行异步调用