NSXMLDocument解析为自定义对象

时间:2012-02-14 04:24:26

标签: xml-parsing nsxmldocument kissxml

使用NSXMLDocument,不使用XPath,是否有一种简单的方法来解析XML文档并将其反序列化为自定义对象以创建对象树层次结构?

例如,如果我有下面显示的xml,是否可以将详细信息放入Restaurant对象及其中的内容对象?

<restaurants>
   <content>spanish name</content>
   <content>english name</content>
</restaurant>
<spa>
   <content>spa spanish name</content>
   <content>spa english name</content>
</spa>

我将使用上面的答案将其扩展到iOS中的kissxml编程。由于kissXML文档提到XML解析器的行为方式与NSXMLDocument相同,所以我使用NSXMLDocument提出了问题。

1 个答案:

答案 0 :(得分:1)

如果您知道自己的预期内容结构,最简单的方法就是使用NXMLParser并循环查找所需的位并跟踪前一位,并在找到对象时构建对象。

如果你想要基于树的方法,考虑学习XQuery和XPath,它们并不是那么糟糕。没有它们,NSXMLDocument真正给你的唯一东西就是Cocoa绑定。

在一天结束时,您必须以某种方式转换数据。

使用NSXMLDocument,如果可能,您仍然可以对XML DTD进行验证,以确保您拥有良好的数据。

使用NSXMLParser,您可以在没有正式DTD的情况下处理事情。 您只需要担心数据的大小,您想要解析它的方式,然后对测试数据进行一些试验和错误,以确保它能够抓住您想要或需要的数据。