これは本当に困惑しています。多くのCDATAセクションを含むドキュメントを読み取るNSXMLParserがあります。しかし、プログラムの一部の実行で、このメソッドで受け取るデータが間違っていることがわかりました。常に発生するとは限りませんが、発生した場合、通常、実際に読み取る必要のある部分の後に、ドキュメントの他のランダムなセクションが約100文字あります。
簡略化して、私はこれを持っています:
- (void)parser:(NSXMLParser *)parser foundCDATA:(NSData *)CDATABlock {
NSString *queryFragment = [NSString stringWithUTF8String:[CDATABlock bytes]];
....
}
信じられないことに、同じドキュメントの同じセクションを読んでいるときに、変数queryFragmentが期待どおりの結果を得ることがありますが、最後にランダムなジャンクが含まれることもあります。CDATAブロックの終わりを超えて読み取られ、生のXMLを取得するのを見たことがあります。
私はこれを2日間デバッグしています。どんなアイデアでも大歓迎です。