Ottengo alcuni dati da un file xml sul web usando l'holly. Nel mio file xml ho un sacco di sezioni diverse da cui ottengo i dati (circa 20).UITableView - imposta tableview con dati Hpple
Heres il codice che sto usando per ottenere i dati
- (void)getMenuItems:(NSString*)url{
NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL URLWithString:url]];
[NSURLConnection sendAsynchronousRequest:request queue:[NSOperationQueue mainQueue] completionHandler:^(NSURLResponse *response, NSData *data, NSError *connectionError) {
//NSLog(@"response == %@", response);
[self getDeli:data];
}
- (void)getDeli:(NSData*)deliData {
TFHpple *Parser = [TFHpple hppleWithHTMLData:deliData];
// 3
NSString *XpathQueryString = self.deliString;
NSArray *Nodes = [Parser searchWithXPathQuery:XpathQueryString];
// 4
NSMutableArray *newNodes = [[NSMutableArray alloc] initWithCapacity:0];
for (TFHppleElement *element in Nodes) {
// 5
Items *item = [[Items alloc] init];
[newNodes addObject:item];
// 6
item.title = [[element firstChild] content];
item.title = [[[element firstChild] content]stringByReplacingOccurrencesOfString:@"\n" withString:@""];
// 7
item.url = [element objectForKey:@"href"];
}
// 8
_deli = newNodes;
[self.tableView reloadData];
}
Il codice tutte le opere, e io ottenere i dati del problema è che non tutte le sezioni hanno tutti i dati, e l'impostazione i titoli delle sezioni e l'impostazione dei dati in CellForRowAtIndexPath sono una seccatura mentre lo cambio depeing su ciò che viene restituito e lo stesso con il numero di sezioni.
Quindi, sto cercando di scoprire quante sezioni vengono restituite come e impostarle sul numero di sezioni in tableview e quindi impostare le intestazioni di sezione sul titolo nelle intestazioni della sezione del file xml e così via.
In modo che non sia sufficiente impostare l'intestazione e l'altezza della riga su 0 se la sezione o la cella è vuota.
Spero che abbia un senso ...
Ecco la maggior parte dei file XML
<day name="monday">
<meal name="DINNER">
<counter name="Chefs Choice">
<dish>
<name>Vegetable Samosa with Yogurt Sauce</name>
</dish>
<dish>
<name>Tomato Red Pepper Chutney</name>
</dish>
<dish>
<name>Curried Rice & Lentils</name>
</dish>
</counter>
<counter name="Entrée">
<dish>
<name>London Broil</name>
</dish>
<dish>
<name>Oven Roast Rosemary Red Potatoes</name>
</dish>
<dish>
<name>Glazed Fresh Carrots</name>
</dish>
<dish>
<name>Salad Bar</name>
</dish>
<dish>
<name>Cheddar Cheese & Bacon Potato Salad</name>
</dish>
</counter>
<counter name="Grill">
<dish>
<name>Hamburger</name>
</dish>
<dish>
<name>Classic Cheeseburger on a Toasted Bun</name>
</dish>
<dish>
<name>Chicken Sandwich</name>
</dish>
<dish>
<name>French Fries</name>
</dish>
</counter>
<counter name="International">
<dish>
<name>Shell Pasta</name>
</dish>
<dish>
<name>Spaghetti Sauce with Tomato Bits</name>
</dish>
<dish>
<name>Alfredo Sauce</name>
</dish>
</counter>
<counter name="Pizza">
<dish>
<name>Cheese Pizza</name>
</dish>
<dish>
<name>Pepperoni Pizza</name>
</dish>
<dish>
<name>Antipasto Pizza Slice</name>
</dish>
</counter>
<counter name="Soup">
<dish>
<name>Tomato Soup Florentine</name>
</dish>
</counter>
<counter name="Vegetable">
<dish>
<name>Eggplant Parmesan Casserole</name>
</dish>
</counter>
</meal>
</day>
Grazie per l'aiuto in anticipo
E 'difficile dire dal codice che hai postato, ma sembra che tu stia semplicemente memorizzando tutto in un array. Probabilmente è necessario creare una classe di modelli di dati più sofisticata e analizzare i dati in questo, ad esempio un dizionario che contiene una matrice per ogni sezione. La chiave sarebbe il nome della sezione e quindi è possibile escludere le sezioni in cui il numero di array è 0 – Paulw11
@ Paulw11 ya che suona secondo le linee di quello che stavo pensando non so esattamente da dove cominciare –
Qual è il tuo XPathQueryString o deliString? vale a dire. quali nodi stai elaborando nel ciclo for? – Paulw11