2012-02-14 73 views
0

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

例如,如果我具有下面显示的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

如果你知道你期望的内容结构,最简单的方法就是使用NXMLParser并循环遍历它,寻找需要的位并跟踪前一位,并在找到它们时构建一个对象。

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

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

使用NSXMLDocument,如果可能的话,您仍然可以很好地验证XML DTD,以确保您有良好的数据。

使用NSXMLParser,您可以在没有正式DTD的情况下处理事务。 你只需要担心数据有多大,你想如何解析它,然后用测试数据做一些试验和错误,以确保它抓住你想要或需要的东西。