Analizza elementi infantili con tbxml
Domanda
Il mio XML sembra così:
<root>
<sets>
<childSets>
<childs>
<child>
<childId>11</childId>
</child>
<child>
<childId>22</childId>
</child>
<child>
<childId>33</childId>
</child>
<child>
<childId>44</childId>
</child>
[...]
</childs>
</childSets>
<childSets>
[...]
</childSets>
</sets>
</root>
Voglio pars tutto childId
elementi di child
.
In realtà, il risultato del mio analisi è solo il primo childId
di ogni childs
elemento:
[...]
do {
if ([[TBXML elementName:element] isEqualToString:@"childSet"]) {
[...]
TBXMLElement *xmlChildId = [TBXML childElementNamed:@"childId" parentElement:child];
[...]
}
} while ((element = element->nextSibling));
[...]
In questo caso, ottengo solo 11
. Cosa c'è che non va qui?
EDIT 1:
La soluzione è trovare il primo figlio dell'elemento figlio e analizzare i prossimi elementi di questo, eccolo qui:
Questo codice è nel giro durante il ciclo del metodo Traverselement
do { [...]
if ([[TBXML elementName:element] isEqualToString:@"childSet"]) {
//find the first child
if ((ChildPARENTELEMENT->firstChild)) {
while (ChildOfCHILDELEMENT!=nil) {
NSLog(@"....");
ChildOfCHILDELEMENT = [TBXML nextSiblingNamed:@"childs" searchFromElement:ChildOfCHILDELEMENT];
}
}
}
while((element = element->nextSibling));
Nessuna soluzione corretta
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow