2012-05-09 3 views
1

J'utilise TBXML dans mon application iphone. J'ai un xml comme la suivante:iphone TBXML xml analyse

<detail> 
    <title>My title</title> 
    <subs> 
     <sub>subCategory1</sub> 
     <sub>subCategory2</sub> 
     <sub>subCategory3</sub> 
    </subs> 
</detail> 

je peux obtenir avec succès le titre et seul le premier des sous-catégories. Le code que je utilise pour obtenir les sous-catégories est la suivante:

NSMuttableArray *divs = [[NSMuttableArray] initWithCapacity:3]; 
TBXMLElement *subsElement = [TBXML childElementNamed:@"subs" parentElement:currentElement]; 
TBXMLElement *subElement = [TBXML childElementNamed:@"sub" parentElement:subsElement]; 
do { 
    [divs addObject:[TBXML textForElement:subElement]]; 
    NSLog(@"%@ , %@", @"Got one subCategory " , divs.lastObject); 
} while ((subsElement = subsElement->nextSibling)); 
+0

Cela ne répond pas directement à votre question, mais je choisirais [ 'RaptureXML'] (https://github.com/ZaBlanc/RaptureXML) sur TBXML dans un battement de coeur pour XML analyser sur iOS. Je regarderais ça; analyser ce que vous essayez d'analyser serait incroyablement facile. –

Répondre

2

Il semble que vous avez une faute de frappe dans votre déclaration where. Je crois que vous vouliez utiliser subElement au lieu de subsElement. Donc, votre code devrait être:

while ((subElement = subElement->nextSibling)); 
+0

Ce n'était pas une faute de frappe. C'était le type d'élément parent. Mais en réalité c'est ce que ça aurait dû être. – Panos