次の構造で構成されるいくつかのxmlがあります
<Succession SuccessionID= ....>
<LinkedSuccession>
<Succession SuccessionID= ..../> // multiple possible
</LinkedSuccession>
<SUF>
<SeeAlsoSuccession>
<Succession SuccessionID= ..../> // multiple possible
</SeeAlsoSuccession>
</SUF>
<Plugins>
<Plugin PluginIdent= ..../> // multiple possible
</Plugins>
<Card>
<Actives> // multiple possible
<Active activeNo= ....> // multiple possible
<Machs>
<Mach Mach= ...../> // multiple possible
</Machs>
</Active>
</Actives>
</Card>
</Succession>
NSXMLParser を使用してこれを解析する方法を知りたいのですが、2つの方法を知っています
- (void)startTheParsingProcess:(NSData *)parserData
{
NSXMLParser *parser = [[NSXMLParser alloc] initWithData:parserData]; //parserData passed to NSXMLParser delegate which starts the parsing process
[parser setDelegate:self];
[parser parse]; // starts the event-driven parsing operation.
}
- (void)parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName attributes:(NSDictionary *)attributeDict
{
//..??
}
- (void)parser:(NSXMLParser *)parser didEndElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName
{
//..??
}
- (void)parser:(NSXMLParser *)parser parseErrorOccurred:(NSError *)parseError
{
NSLog(@"Paser Error = %@", parseError);
UIAlertView *errorAlert = [[UIAlertView alloc] initWithTitle:@"Error!" message:@"A parsing failure occurred." delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil, nil];
[errorAlert show];
}
- (void)parserDidEndDocument:(NSXMLParser *)parser
{
//..
}
通常、私はこのようなものを使用して各要素にアクセスしますが、この xml ファイルの構造のため、Succession を読み取るときのように、最後に読み取った値で値を上書きする場合と同様に、これは適切に機能しません。
if ([elementName isEqualToString:@"Succession"]) {
など、しかし、この XML ファイルの構造は私が処理するには多すぎます.. NSXMLParser を使用してこの xml ファイルを読み取る方法について、助けを得たいと思っています。
どんな助けでも大歓迎です。