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>
だから私は 2 冊のペーパーバックと 2 冊のハードカバーの本を持っています。ここでの問題は、データを my にロードすると、リクエストtableView
に対して合計 4 つのリストが表示されることです。ofType
次のようなテーブル ビューが表示されます。
タイプのインスタンスを 1 つだけ持つにはどうすればよいですか? したがって、それぞれ 2 つではなく、1 つのペーパーバックのリストと 1 つのハードカバーのリストしか取得できません...私の意図はtableView
、選択したタイプの本のカテゴリのすべての本をリストする別のリストを後で追加することです。
回答はできるだけ具体的かつ詳細に記入してください。
よろしく、 -VZM
更新:私は以下を実装しようとしました:
if (![array containsObject:bt]) {
[array addObject:bt];
}
しかし残念ながら、これは同じ結果を返しています。