使用NSXMLParser从连续流中解析多个XML文档

时间:2010-08-22 20:55:41

标签: iphone objective-c xml

我的iPhone应用程序是基于套接字的,并且我打算使用基于事件的NSXMLParser一个接一个地接收连续的,非分隔的XML文档流。

示例: 2个文件一个接一个

<?xml version='1.0' encoding='UTF-8' ?><document name="something"><foo>bar</foo></document><?xml version='1.0' encoding='UTF-8' ?><document name="somethingelse"><bar>foo</bar></document>

在基于Java的实现中,XML解析器只是解析流,直到它到达文档的末尾,此时它会完成它的工作,然后开始从流中的那一点解析下一个文档。 / p>

问题是NSXMLParser不接受流并且没有告诉我它完成解析的NSData中的哪一点(除了无用的行和列号)。

我已经看到了一些像AQ StreamingXMLParser这样的解决方案,但是当它到达文档末尾时它就会停止并且不会尝试解析另一个文档,或者告诉我它在流中的确切位置以便我可以启动一个新的解析。

1 个答案:

答案 0 :(得分:0)

您可能必须使用推送解析器上下文下拉到libxml。看一下在LibXMLParser中实现它的示例项目XMLPerformance。 http://developer.apple.com/iphone/library/iPad/index.html#samplecode/XMLPerformance/Listings/Classes_LibXMLParser_m.html%23//apple_ref/doc/uid/DTS40008094-Classes_LibXMLParser_m-DontLinkElementID_10