0

NSXMLParser を使用して、リモートでホストされている Web サービスから返された XML ドキュメントを解析しています。XML は有効ですが、ノードの一部が空になることがあります。これにより、NSXMLParser がフォールオーバーするようです (NSXMLParserErrorDomain エラー 5)。 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 を呼び出してパーサー コードに消え、デリゲート メソッドを呼び出す前にエラーをスローします。

4

1 に答える 1

0

あなたの問題は、NSXMLParser の実装に起因する可能性が最も高いです。私の NSXMLParser の実装は空のノードを問題なく処理しますが、XML から作成しているディクショナリの空のノードの内部に @"" を実際に格納する方法がわかりません。parser:foundCharacters: は NSXMLParser が空のノードにヒットしたときに呼び出されることはないため、そこまたは parser:didEndElement: での実装がほぼ確実に問題を引き起こしています。

于 2010-11-05T18:03:35.983 に答える