Iphone NSXMLParser-解析XML文件,但它会向我显示两次结果
我试图将XML文件解析为NSMutableArray,并将其显示给tableview。问题是,当它解析时,它会在NSMutableArray中添加解析结果的2倍。这将导致tableview显示两次结果。(表视图中有2行) 我的问题是:如何显示一个结果而不是两次相同的结果 XML文件:Iphone NSXMLParser-解析XML文件,但它会向我显示两次结果,iphone,nsxmlparser,objective-c++,Iphone,Nsxmlparser,Objective C++,我试图将XML文件解析为NSMutableArray,并将其显示给tableview。问题是,当它解析时,它会在NSMutableArray中添加解析结果的2倍。这将导致tableview显示两次结果。(表视图中有2行) 我的问题是:如何显示一个结果而不是两次相同的结果 XML文件: <something>test1234567test</something> 我试过: -(void)parser:(NSXMLParser *)parser didEndElement
<something>test1234567test</something>
我试过:
-(void)parser:(NSXMLParser *)parser didEndElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName
{
if([currentElement isEqualToString:@"something"])
{
[currentname release];
}
}
但它表明:
测试1234567测试
test1234567test教会了我很多关于使用NSXMLParser解析XML的知识。要正确地进行这样的解析,还需要实现
didStartElement
方法。您不应该在foundCharacters
方法中向可变数组添加任何内容-您只应该在didEndElement
方法中向数组添加一些内容,因为此方法表示元素的全部内容已被读取。谢谢!你是对的。foundcharacters方法两次添加对象。我添加了[mutarray_xml addobject:currentname];使用双元素法。现在它可以工作了。
-(void)parser:(NSXMLParser *)parser didEndElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName
{
if([currentElement isEqualToString:@"something"])
{
[currentname release];
}
}