解析 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 数据库最有效的过程是啥?的主要内容,如果未能解决你的问题,请参考以下文章

在 Core Data 中只保存部分对象

如何防止 Core Data 在 iOS 5 中重复?

SwiftUI Core Data 删除实体的相关数据

iPhone Core Data 一次保存多个项目的随机行为?

解析本地数据存储以替代 Core Data (iOS) 和 SQLite (Android)

如何将 NSMutableString 转换为 double 以存储在 Core Data 中?