Objective c 易于扩展的Objective C XML解析器?
如果我知道如何表达,我可能会在谷歌上找到答案。我需要一个XML解析器,我可以用它调用其他XML解析器 例如:Objective c 易于扩展的Objective C XML解析器?,objective-c,xml,parsing,Objective C,Xml,Parsing,如果我知道如何表达,我可能会在谷歌上找到答案。我需要一个XML解析器,我可以用它调用其他XML解析器 例如: <car> <driver> <name /> <age /> <height /> </driver> <make> <name /> <nationality />
<car>
<driver>
<name />
<age />
<height />
</driver>
<make>
<name />
<nationality />
<age />
</make>
<engine>
<horsepower />
<displacement />
<mileage />
</engine>
</car>
我需要一个解析器,它将开始解析Car,找到Driver并将所有的Driver交给一个单独的解析器类,然后继续make,等等
如果您认为它是一个状态机,我需要一个解析器,其中一些状态可以是不同的类。如果您使用的是NSXMLParser,那么您可以在找到元素时切换委托:
- (void)parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qualifiedName attributes:(NSDictionary *)attributeDict {
if ([elementName isEqualToString:@"driver"]) {
parser.delegate = driverDelegate;
driverDelegate.parentDelegate = self;
// Maybe call [driverDelegate parser:didStartElement:...]
}
}
然后在处理完另一个委托(在DriverDelegate的类中)后将其更改回:
如果使用的是NSXMLParser,则可以在找到元素时切换委托:
- (void)parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qualifiedName attributes:(NSDictionary *)attributeDict {
if ([elementName isEqualToString:@"driver"]) {
parser.delegate = driverDelegate;
driverDelegate.parentDelegate = self;
// Maybe call [driverDelegate parser:didStartElement:...]
}
}
然后在处理完另一个委托(在DriverDelegate的类中)后将其更改回:
它需要在iOS上运行吗?或者OSX?iOS。当前正在使用NSXMLParser。它是否需要在iOS上运行?或者OSX?iOS。目前正在使用NSXMLParser。这正是我想要做的。谢谢。这正是我想要做的。谢谢