XML 抽出の結果を使用してオブジェクト「Position」を構築しています。これは適切に解析されますが、このオブジェクトを配列に追加するタイミングがわかりません。以下の要素を抽出した後にオブジェクトを追加したい
私はこれをやっています:
- (void) traverseElement:(TBXMLElement *)element {
position = [[Position alloc]init];
NSString *cp;
do {
TBXMLAttribute * attribute = element->firstAttribute;
BOOL foundElement = NO;
while (attribute) {
if ([[TBXML elementName:element] isEqualToString:@"referencecolis"]) {
[idClient addObject: [TBXML textForElement:element]];
};
if ([[TBXML elementName:element] isEqualToString:@"idagencedepart"]) {
[position setIdagencedepart:[TBXML textForElement:element]];
NSLog(@"idagencedepart : %@",position.idagencedepart);
};
if ([[TBXML elementName:element] isEqualToString:@"idagencefinale"]) {
[position setIdagencefinale:[TBXML textForElement:element]];
NSLog(@"idagencedfinale : %@",[TBXML textForElement:element]);
};
if ([[TBXML elementName:element] isEqualToString:@"iddestinataire"]) {
[position setIddestinataire:[TBXML textForElement:element]];
};
if ([[TBXML elementName:element] isEqualToString:@"idexpediteur"]) {
[position setIddestinataire:[TBXML textForElement:element]];
NSLog(@"idExpediteur : %@",[TBXML textForElement:element]);
};
if ([[TBXML elementName:element] isEqualToString:@"idTransporteurReexpedition"]) {
[position setIdtransporteurreexpedition:[TBXML textForElement:element]];
NSLog(@"idTransporteurReexpedition : %@",[TBXML textForElement:element]);
};
if ([[TBXML elementName:element] isEqualToString:@"typeadresse"] && [[TBXML textForElement:element]isEqualToString:@"1"] ) {
[position setTypeAdresse:[TBXML textForElement:element]];
NSLog(@"typeadresse : %@",[TBXML textForElement:element]);
};
if ([[TBXML elementName:element] isEqualToString:@"codepostal"]) {
cp = [[TBXML textForElement:element] substringWithRange:NSMakeRange(0,2)];
[position setCodePostal:cp];
NSLog(@"codePostal : %@",cp);
};
attribute = attribute->next;
[arrayPositions addObject:position];
}
if (element->firstChild)
[self traverseElement:element->firstChild];
} while ((element = element->nextSibling));
一部の要素は2回解析されるため、解析されているかどうかを知るためにブール値を設定できません。
助けはありますか?