我正在学习 RestKit。我遇到了它提供的 elementToPropertyMapping 功能。我想知道是否可以将此映射用于 xml 文档?还是仅适用于 JSON?
在教程中,我发现他们提供了 JSON 提要。所以我很困惑。还有是否有任何其他用于 IOS 的 XML 解析器提供此映射功能。谢谢
您找到的教程已过时。elementToPropertyMappings 不再使用。不是从 RKObject 或 RKManagedObject 继承,而是使用普通的 Objective-c 类并使用 RKObjectMapping 将数据映射到它们。
您可以在此处找到新文档。
但是是的,您可以将 RestKit 的对象映射用于 XML 文档。解析器应该检测 mimetype 并使用 xml 解析器而不是 json;如果不是,您可以根据链接文档明确告诉它使用 xml。
事实上,gitHub 上的教程已经过时了,但是即使是新的教程也没有关于如何使用 RestKit 有效地查询 XML 文件以进行正确映射的参考,这对于像我这样的新手来说非常困惑。
作为快速参考,我将尝试向您展示它使用 XML 的方式:
假设你有这样的回应:
<?xml version="1.0" encoding="UTF-8"?>
<users type="array">
<user>
<id>1</id>
<name>Roberto</name>
<company>Apple</company>
</user>
<user>
<id>2</id>
<name>Carlos</name>
<company>Adobe</company>
</user>
</users>
如果你想在你的Objective-C项目中映射一个类Users,你必须特别注意keyPath,在这种情况下:"users" <- first tag, and "user" <-second tag, and the您要映射的“类”。
为此,您使用:
[[RKObjectManager sharedManager].mappingProvider setMapping:objectMapping forKeyPath:@"users.user"];
对于其余部分,如果您使用此链接上教程的第一部分(示例对象映射),则可以:
这是一个非常好的iOS xml 解析器比较
通常,您应该能够使用 RestKit 进行这种映射。这取决于您的 xml 有多复杂。如果它依赖于命名空间和外星技术,RestKit 可能会很困难。
对于纯 xml,Restkit 工作得很好。一些教程/示例,最后是RestKit API 文档。寻找RKXMLParserLibXML。