0

誰かがtbxmlを使用して特定のxml構造を適切にトラバースする方法を教えてもらえますか?添付のコードをTBXML解析に使用しています。idとnameタグの値を取得できます。ただし、このメソッドは、title&descriptionタグに含まれる値を検出しません。

-(void)traverseElement:(TBXMLElement *)element
{
 do
 {
    [TBXML iterateAttributesOfElement:element withBlock:^(TBXMLAttribute *attribute, NSString *name, NSString   *value) {
        NSLog(@"%@->%@ = %@",[TBXML elementName:element], name, value);
    }];

    if (element->firstChild)
        [self traverseElement:element->firstChild];
 }
while ((element = element->nextSibling));

}

xml構造は-

  <allresponse>
  <responses>
      <response id="123" name ="myname1">
          <title> Some Title1 </title>
          <description>Some decription 1</description>
      </response>
      <response id="456" name ="myname2">
          <title> Some Title2 </title>
          <description>Some decription 2</description>
      </response>
   </responses>
</allresponse>
4

2 に答える 2

1

さて、私はついに私がここで欠けていたものを見つけました。

TBXMLElement *title = [TBXML childElementNamed:@"title" parentElement:element];
            NSLog(@"Title is %@",[TBXML textForElement:title]);

TBXMLElement *description = [TBXML childElementNamed:@"description" parentElement:element];
            NSLog(@"Description is %@",[TBXML textForElement:description]);
于 2012-12-23T12:29:48.480 に答える
0

すべての要素を通過する再帰関数から開始することもできます

- (void) traverseElement:(TBXMLElement *)element {

    do {
       if (element->firstChild)
          [self traverseElement:element->firstChild];

        //do whatever you think is useful to you here

     } while ((element = element->nextSibling));
}
于 2014-10-20T17:45:35.580 に答える