【问题标题】:Parsing Multiple XML Docs from a Continuous Stream with NSXMLParser使用 NSXMLParser 从连续流中解析多个 XML 文档
【发布时间】:2023-03-20 01:40:01
【问题描述】:

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

示例: 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 解析器只是解析一个流,直到它到达文档的末尾,此时它会执行它的操作,然后从流中的该点开始解析下一个文档。

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

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

【问题讨论】:

    标签: iphone objective-c xml


    【解决方案1】:

    您可能必须使用推送解析器上下文下拉到 libxml。查看示例项目 XMLPerformance,它在 LibXMLParser 中实现了这一点。 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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多