使用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提出了问题。
答案 0 :(得分:1)
如果您知道自己的预期内容结构,最简单的方法就是使用NXMLParser
并循环查找所需的位并跟踪前一位,并在找到对象时构建对象。
如果你想要基于树的方法,考虑学习XQuery和XPath,它们并不是那么糟糕。没有它们,NSXMLDocument真正给你的唯一东西就是Cocoa绑定。
在一天结束时,您必须以某种方式转换数据。
使用NSXMLDocument,如果可能,您仍然可以对XML DTD进行验证,以确保您拥有良好的数据。
使用NSXMLParser,您可以在没有正式DTD的情况下处理事情。 您只需要担心数据的大小,您想要解析它的方式,然后对测试数据进行一些试验和错误,以确保它能够抓住您想要或需要的数据。