Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/selenium/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone NSXMLParser-解析XML文件,但它会向我显示两次结果_Iphone_Nsxmlparser_Objective C++ - Fatal编程技术网

Iphone NSXMLParser-解析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

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

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

XML文件:

 <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];
   }
}