0

NSXMLParserを使用してこのタイプのXMLを解析するにはどうすればよいですか

<category> <categoryName> userName</categoryName> <categoryName>password</categoryName><category>
4

2 に答える 2

1

次のようなhファイルで配列と文字列を宣言します。

 NSMutableArray *aryCategory;
 NSString *strCategroyName;

パーサーの使用を開始するための.mファイル内:

NSXMLParser *parser = [[NSXMLParser alloc] initWithData:yourData]; // your data will be instance of NSData or NSMutableData
parser.delegate = self;
[parser parse];

これは、xmlデータを取得すると実行されます。NSXMLParserDelegate結果の処理には、次のように使用できます。

- (void)parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName attributes:(NSDictionary *)attributeDict {
     if ([elementName isEqualToString:@"category"]) {
          aryCategory = [[NSMutableArray alloc] init];
          strCategroyName = @"";
     }
}
- (void)parser:(NSXMLParser *)parser foundCharacters:(NSString *)string {
     strCategroyName = [NSString stringWithFormat:@"%@%@", strCategroyName, string];
}

- (void)parser:(NSXMLParser *)parser didEndElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName {
    if ([elementName isEqualToString:@"categoryName"]) {
          [aryCategory addObject:strCategroyName];
          strCategroyName = @"";
     }

}

これで、配列にすべてのカテゴリ名を入力できます。

お役に立てれば :)

于 2012-08-07T11:13:51.570 に答える
0

パーサーのデリゲートである<category>indidStartおよび要素を記述します。didEnd

于 2012-08-07T11:02:39.610 に答える