NSXMLParser Преждевременный документ Ошибка конца, вызванная пустыми узлами? - PullRequest
0 голосов
/ 01 сентября 2010

Я использую NSXMLParser для анализа XML-документа, который возвращается из удаленного веб-сервиса.XML действителен, но некоторые узлы иногда будут пустыми, это может привести к перепаду NSXMLParser (ошибка 5 NSXMLParserErrorDomain), однако я не могу найти в сети ничего, что указывало бы на проблему с разбором пустых узловЯ задавался вопросом, сталкивался ли кто-нибудь еще с такими проблемами и мог ли подтвердить или опровергнуть мою теорию о том, что NSXMLParser не может справиться с пустыми тегами?

Мой 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 и затем исчезает вкод синтаксического анализатора и возвращает ошибку, прежде чем он вызовет больше методов делегата.

1 Ответ

0 голосов
/ 05 ноября 2010

Ваша проблема, скорее всего, связана с вашей реализацией NSXMLParser.Моя реализация NSXMLParser прекрасно обрабатывает пустые узлы, хотя я не нашел способа на самом деле хранить @ "" внутри пустых узлов в словаре, который я создаю из XML.parser: foundCharacters: никогда не вызывается, когда NSXMLParser достигает пустого узла, поэтому ваша реализация там или в parser: didEndElement: почти наверняка вызывает проблему.

...