Я экспериментирую с выбором узлов с помощью XPath ... Я использую следующий код - это мое приложение iOS для сбора информации о типах книг, которыми я владею, будь то в мягкой обложке или в твердом переплете:Выбор узлов с XPath
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>
Так что у меня 2 в мягкой обложке, и 2 книги в твердом переплете: большой. Теперь проблема заключается в том, что при загрузке данных в мой tableView
я получаю 4 полные списки для моей ofType
запросу:
Я получаю вид таблицы, которая выглядит следующим образом:
Как я могу оставьте только 1 экземпляр типа? Итак, вместо двух из них я получаю только 1 лист в мягкой обложке и 1 лист в твердой обложке ... Я намерен добавить еще tableView
, в котором будут перечислены все книги в выбранной категории книг.
Пожалуйста, будьте как можно более конкретными и подробными в своем ответе.
С уважением, -VZM
Обновление: Я пытался реализовать следующее:
if (![array containsObject:bt]) {
[array addObject:bt];
}
Но, к сожалению, это возвращающиеся тот же результат.
Я просто попытался реализации этого кода, но, к сожалению, это не работает ... Я получаю тот же результат, который получаю, когда я разместил вопрос @Anusha – vzm