我有一些由以下结构组成的 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 来解析这个我知道这两种方法
- (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 文件的结构,这个 dosnt 可以正常工作,就像它读取 Succession 时一样,如果只是用最后一个读取的值覆盖任何值。
if ([elementName isEqualToString:@"Succession"]) {
等等,但是这个 XML 文件的结构对我来说太多了。我希望得到一些关于如何使用 NSXMLParser 读取这个 xml 文件的帮助。
任何帮助将不胜感激。