我正在尝试使用 XPath 选择节点...我正在使用以下代码是我的 iOS 应用程序来收集有关我拥有的书籍类型的一些信息,无论它们是平装本还是精装本:
nodes= [rootNode nodesForXpath:@"Collection/books" error:nil];
for (DDXMLNode* node in nodes)
{
Booktype* bt = [[Booktype alloc] init];
DDXMLNode *nameNode = [[node nodesForXpath:@"OfType" error:nil]; objectAtIndex:0];
bt.type = [nameNode stringValue];
// And lastly, I am adding this object to my array that will be the datasource for my tableView
[array addObject:bt];
}
我的图书馆 XML 如下所示:
<Collection>
<books>
<title lang="eng">Harry Potter</title>
<price>29.99</price>
<ofType>Hardcover</ofType>
</books>
<books>
<title lang="eng">Stella Bain</title>
<price>19.99</price>
<ofType>Hardcover</ofType>
</books>
<books>
<title lang="eng">The First Phone Call from Heaven</title>
<price>12.95</price>
<ofType>Paperback</ofType>
</books>
<books>
<title lang="eng">Learning XML</title>
<price>39.95</price>
<ofType>Paperback</ofType>
</books>
</Collection>
所以我有两本平装书和两本精装书:太好了。现在的问题是,当将数据加载到我的请求时tableView
,我得到了 4 个列表:ofType
我得到一个看起来像这样的表格视图:
我怎样才能只有 1 个该类型的实例?因此,我将只获得 1 个平装书清单和 1 个精装清单,而不是每个 2 个……我的意图是稍后添加另一个tableView
,它将列出所选书籍类别中的所有书籍。
请在您的回答中尽可能具体和详细。
问候,-VZM
更新:我试图实现以下内容:
if (![array containsObject:bt]) {
[array addObject:bt];
}
但不幸的是,这返回了相同的结果。