XML解析器的问题

时间:2011-07-12 20:55:12

标签: iphone objective-c ios xcode nsxmlparser

我正在使用此处提供的XML解析器:http://www.saygoodnight.com/2009/08/a-simple-quick-reusable-xml-parser-for-the-iphone/

我之所以选择它,是因为我无法让常规的网页与我的网页一起使用。然而,这个确实有效,因为在控制台中我得到了如下结果:

  

元素:x位数据:136父:某点

这来自我的主要实现文件中的代码:

[thisParser dumpRoot];

我的问题是,我怎么能以某种方式访问值136?如果我可以做object.x-position或者其他东西,那会很棒,但是我不确定这对于这个类是如何工作的。完整的课程可以在上述链接下载,似乎是一个很好的选择。

我非常感谢任何帮助,谢谢。

1 个答案:

答案 0 :(得分:1)

解析器的前提似乎非常简单。完成解析后,它将为您提供NSDrray的NSArray。

你只需编写另一种利用它的方法..

像 -

-(NSString*) getElement:(NSString*)element fromArray:(NSArray *)array
{
   for ( int i = 0 ; i < [array count] ; i++ ) 
   {
       NSDictionary* thisDict = [array objectAtIndex:i];
       if ( [element isEqualToString:[thisDict objectForKey:@"element"]] )
               return [thisDict objectForKey:@"data"];
       else
       {
            NSString *ret =  [self getElement:element fromArray:[thisDict objectForKey:@"children"]];
            if ( ret == nil )
                continue;
            else 
                return ret;
   }
}
return nil;
}

在SimpleParser.h中放置一个包装器方法

-(NSString*)getParsedElement:(NSString *)elementName;

在你的.m中实现 -

-(NSString *)getParsedElement:(NSString *)elementName 
{
    return [self getElement:elementName fromArray:theMainStack];
}

然后你可以这样称呼它 -

[thisParser getParsedElement:@"x-position";