NSXMLParser Premature Document由空节点引起的结束错误?

问题描述:

我正在使用NSXMLParser来解析从远程托管的Web服务返回的XML文档。 XML是有效的,但有些节点偶尔会是空的,这似乎导致NSXMLParser崩溃(NSXMLParserErrorDomain错误5),但我无法找到网络上的任何东西,这将表明将有解析空节点的问题,所以我想知道是否有其他人遇到过这个问题,并且可以证实或否认我的理论,即NSXMLParser无法应付空标签?NSXMLParser Premature Document由空节点引起的结束错误?

我的XML去沿着线的东西:

<Entry> 
    <Request>2</Request> 
    <ID>123456789</ID> 
    <Name></Name> 
    <UserName>username</UserName> 
    <Password>password</Password> 
    <SessionID>987654321</SessionID> 
    <Oldest></Oldest> 
    <Newest></Newest> 
    <List></List> 
</Entry> 

解析器抛出一个错误,当它到达的元素,它调用DidStartElement,然后消失扎进解析器代码并抛出在调用更多委托方法之前返回错误。

您的问题很可能来自您的NSXMLParser的实现。我的NSXMLParser实现可以很好地处理空节点,但我还没有想出一种方法来实际存储我从XML生成的字典中的空节点中的@“”。解析器:foundCharacters:在NSXMLParser命中空节点时永远不会调用,因此您的实现在解析器中执行:didEndElement:几乎肯定会导致问题。