解析 XML 和构建 Core Data 数据库最有效的过程是啥?
Posted
技术标签:
【中文标题】解析 XML 和构建 Core Data 数据库最有效的过程是啥?【英文标题】:What's the most efficient process for parsing XML and building a Core Data database?解析 XML 和构建 Core Data 数据库最有效的过程是什么? 【发布时间】:2010-10-09 16:02:16 【问题描述】:假设我正在从某个 Web 服务接收 XML 文件,例如这两个示例..
<news>
<item id="123" created="10/09/10" expires="07/07/10" modified="10/09/10">
<title>Xiabo receives Nobel></title>
<content>Lorem ipsum lorem ipsum</content>
</item>
</news>
.
<products>
<item id="1" category="shoes">
<name>Nike Air</name>
<logo><![CDATA[http://example.com/images/logos/nikeair.png]></logo>
<content>Lorem ipsum lorem ipsum</content>
</item>
<item id="2" category="jeans">
<name>Wrangler</name>
<logo><![CDATA[http://example.com/images/logos/wrangler.png]></logo>
<content>Lorem ipsum lorem ipsum</content>
</item>
</products>
我将如何解析这些 XML 文件,然后将它们添加到 Core Data,以便下次加载应用程序时,数据将在那里,而无需重新加载 XML。
对不起,我的问题太模糊了,我只是想弄清楚它。
【问题讨论】:
【参考方案1】:如果您对 Web 服务有任何控制权,则应将 XML 格式更改为 JSON。 Obj-C 可以非常有效地消化 JSON。 XML 解析(使用 xmllib 或 NSXMLParser)效率不高。我的经验分析表明,NSXMLParser 以牺牲灵活性为代价更快。
【讨论】:
很遗憾,我没有这样的控制权。 最简单(不是最好)的解决方案是将此 xml 转储为文本文件或 blob,并使用与解析网络数据流相同的代码将其解析为业务对象。以上是关于解析 XML 和构建 Core Data 数据库最有效的过程是啥?的主要内容,如果未能解决你的问题,请参考以下文章
iPhone Core Data 一次保存多个项目的随机行为?