NSXMLParser - 解析XML文件但它向我显示两次结果

时间:2011-09-14 14:21:58

标签: iphone nsxmlparser objective-c++

我正在尝试将XML文件解析为NSMutableArray并将其显示到tableview。问题是当它解析时,它会在NSMutableArray中添加2次解析结果。这导致tableview显示结果两次。 (在tableview中有2行)

我的问题是:如何显示一个结果而不是两次相同的结果?

XML的文件:

 <something>test1234567test</something>

代码:

-(void)parser:(NSXMLParser *)parser foundCharacters:(NSString *)string

{   if([currentElement isEqualToString:@"something"])

    [currentname appendString:string];
    [mutarray_xml addObject:currentname];
}

我试过了:

-(void)parser:(NSXMLParser *)parser didEndElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName
{
   if([currentElement isEqualToString:@"something"])
   {
      [currentname release];
   }
}

但它显示:

test1234567test

test1234567test

2 个答案:

答案 0 :(得分:2)

This post on Big Nerd Ranch教会了我很多关于使用NSXMLParser解析XML的知识。

答案 1 :(得分:0)

要正确解析此类,您还需要实现didStartElement方法。你不应该在foundCharacters方法中向你的可变数组中添加任何东西 - 你应该只在didEndElement方法中向数组中添加一些东西,因为这个方法表明已经读取了元素的全部内容