使用NSXMLParser检查XML文档是否为空

时间:2010-01-11 01:06:01

标签: iphone nsxmlparser

我正在编写一个iPhone应用程序,它以XML格式从Web服务中检索数据。如果Web服务未找到任何数据,则返回空文档,如

<?xml version="1.0"?>
<root_element/>

正在解析此数据,然后将其添加到数组中,随后添加到表视图中。

在我的-numberOfRowsInSection我有return [self.array count];但显然如果文档为空,则没有任何内容添加到数组中,并且我没有得到解析错误,而是出现index out of bounds错误。是否有isDocumentEmpty方法或某些此类方法来检查文档是否包含元素?

你怎么建议我检查一下?我应该用什么方式提醒用户?警报视图,然后弹出控制器?

感谢。

3 个答案:

答案 0 :(得分:0)

您可以使用:

-(void)parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName
 namespaceURI:(NSString *)namespaceURI
qualifiedName:(NSString *)qName
   attributes:(NSDictionary *)attributeDict

并检查root_element/作为elementName

答案 1 :(得分:0)

关于如何使用NSXMLParser解析XML数据,您可以从Apple检查SeismicXML示例应用程序。

在此应用程序中,XML解析在后台线程上进行,并使用批处理的对象更新地震表视图。

答案 2 :(得分:0)

我认为问题在于您要重新加载tableview。当您从数组中访问超出数组索引范围的元素时,会生成超出范围的异常。

所以这里有一些调试技巧可以确切地知道你的问题是什么

  • 首先在异常发生后转到控制台。键入“where”并按Enter键,您将获得异常详细信息。
  • 您将获得收到此错误的确切行号。
  • 在该行之前设置一个断点并在那里进行调试

你会发现你正在做的错误。

如果这没有帮助。请显示一些代码段。

谢谢,

Madhup