我有这样的XML:
<rss>
<channel>
<item>
<title>something</title>
<description>...</description>
<category>cooking</category>
<category>housing</category>
</item>
<item>
...
</item>
...
</channel>
</rss>
这是一个RSS Feed,在频道内有一系列项目,包含许多标签/属性(标题,内容,......),以及一组类别标签。
我可以使用RestKit为频道/项目/标题/内容部分解析它:
RKManagedObjectMapping *itemMapping = [RKManagedObjectMapping mappingForClass:[Item class] inManagedObjectStore:objectStore];
[itemMapping mapKeyPath:@"title" toAttribute:@"title"];
[itemMapping mapKeyPath:@"description" toAttribute:@"content"];
RKManagedObjectMapping *channelMapping = [RKManagedObjectMapping mappingForClass:[Channel class] inManagedObjectStore:objectStore];
[channelMapping mapKeyPath:@"item" toRelationship:@"items" withMapping:itemMapping];
[manager.mappingProvider setMapping:channelMapping forKeyPath:@"rss.channel"];
但我迷失了地图类别...我尝试过这样的事情:
RKManagedObjectMapping *categoryMapping = [RKManagedObjectMapping mappingForClass:[Category class] inManagedObjectStore:objectStore];
[itemMapping mapKeyPath:@"category" toRelationship:@"categories" withMapping:CategoryMapping]
但不知何故,标签内的文本内容未映射到Category类中的属性'name'。我确实没有在这里的代码中使用这个“名称”,因为我不知道把它放在哪里。
如何使用RestKit解析纯文本XML标记?是否有类似的东西:
[categoryMapping mapKeyPath:@".text" toAttribute:@"name"];
(不能按原样运作)
答案 0 :(得分:6)
你可以尝试:
[categoryMapping mapKeyPath:@“”toAttribute:@“name”];
我不确定它是否会起作用。