<skin>
<string name="title" id="1">学习xml解析</string>
<string name="content" id="1">hello world</string>
</skin>
@interface SKIN : NSObject <NSXMLParserDelegate>
{
NSMutableArray *viewArray;//用于存放资源
NSString *skinName;
}
-(BOOL)load:(NSString *)name;
-(void)unload;
@end
@implementation SKIN
-(BOOL)load:(NSString *)name
{
//read file to buffer
NSFileHandle *file = [NSFileHandle fileHandleForReadingAtPath:name];
NSData *data =
;
//create xml parser
NSXMLParser *parser;
parser = [[NSXMLParser alloc] initWithData:data];
[parser setShouldProcessNamespaces:NO];
[parser setShouldReportNamespacePrefixes:NO];
[parser setShouldResolveExternalEntities:NO];
[parser setDelegate:self];
//start parse
[parser parse];
return YES;
}
-(void)unload
{
}
- (void)parserDidStartDocument:(NSXMLParser *)parser
{
//alloc
NSLog(@"=======start parse=========");
viewArray = [[NSMutableArray alloc] init];
}
- (void)parserDidEndDocument:(NSXMLParser *)parser
{
NSLog(@"=======end parse=========");
}
- (void)parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName attributes:(NSDictionary *)attributeDict
{
NSLog(@"=======start element:%@=========", elementName);
if ([elementName isEqualToString:@"skin"]) {
NSLog(@"skin name=%@", [attributeDict objectForKey:@"name"]);
} else if ([elementName isEqualToString:@"string"]) {
NSLog(@"string name= %@ id=%@", [attributeDict objectForKey:@"name"], [attributeDict objectForKey:@"id"]);
}
}
- (void)parser:(NSXMLParser *)parser didEndElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName
{
NSLog(@"=======end element:%@=========", elementName);
}
- (void)parser:(NSXMLParser *)parser foundCharacters:(NSString *)string
{
NSLog(@"=======element content=%@=====", string);
}
@end
#import "skin.h"
int main (int argc, const char * argv[])
{
@autoreleasepool {
SKIN *skin = [[SKIN alloc] init];
[skin load:@"/Extra/skin_cn.xml"];
[skin unload];
}
return 0;
}
2012-03-28 19:41:20.722 test[2321:707] =======start element:skin=========
2012-03-28 19:41:20.723 test[2321:707] skin name=(null)
2012-03-28 19:41:20.724 test[2321:707] =======element content=
=====
2012-03-28 19:41:20.725 test[2321:707] =======start element:string=========
2012-03-28 19:41:20.726 test[2321:707] string name= title id=1
2012-03-28 19:41:20.728 test[2321:707] =======element content=学习xml解析=====
2012-03-28 19:41:20.729 test[2321:707] =======end element:string=========
2012-03-28 19:41:20.730 test[2321:707] =======element content=
=====
2012-03-28 19:41:20.731 test[2321:707] =======start element:string=========
2012-03-28 19:41:20.732 test[2321:707] string name= content id=1
2012-03-28 19:41:20.733 test[2321:707] =======element content=hello world=====
2012-03-28 19:41:20.734 test[2321:707] =======end element:string=========
2012-03-28 19:41:20.735 test[2321:707] =======element content=
=====
2012-03-28 19:41:20.736 test[2321:707] =======end element:skin=========
2012-03-28 19:41:20.737 test[2321:707] =======end parse=========
<skin>
<string name="title" id="1">学习xml解析</string>
<string name="content" id="1">hello world</string>
</skin>
@interface SKIN : NSObject <NSXMLParserDelegate>
{
NSMutableArray *viewArray;//用于存放资源
NSString *skinName;
}
-(BOOL)load:(NSString *)name;
-(void)unload;
@end
@implementation SKIN
-(BOOL)load:(NSString *)name
{
//read file to buffer
NSFileHandle *file = [NSFileHandle fileHandleForReadingAtPath:name];
NSData *data =
;
//create xml parser
NSXMLParser *parser;
parser = [[NSXMLParser alloc] initWithData:data];
[parser setShouldProcessNamespaces:NO];
[parser setShouldReportNamespacePrefixes:NO];
[parser setShouldResolveExternalEntities:NO];
[parser setDelegate:self];
//start parse
[parser parse];
return YES;
}
-(void)unload
{
}
- (void)parserDidStartDocument:(NSXMLParser *)parser
{
//alloc
NSLog(@"=======start parse=========");
viewArray = [[NSMutableArray alloc] init];
}
- (void)parserDidEndDocument:(NSXMLParser *)parser
{
NSLog(@"=======end parse=========");
}
- (void)parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName attributes:(NSDictionary *)attributeDict
{
NSLog(@"=======start element:%@=========", elementName);
if ([elementName isEqualToString:@"skin"]) {
NSLog(@"skin name=%@", [attributeDict objectForKey:@"name"]);
} else if ([elementName isEqualToString:@"string"]) {
NSLog(@"string name= %@ id=%@", [attributeDict objectForKey:@"name"], [attributeDict objectForKey:@"id"]);
}
}
- (void)parser:(NSXMLParser *)parser didEndElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName
{
NSLog(@"=======end element:%@=========", elementName);
}
- (void)parser:(NSXMLParser *)parser foundCharacters:(NSString *)string
{
NSLog(@"=======element content=%@=====", string);
}
@end
#import "skin.h"
int main (int argc, const char * argv[])
{
@autoreleasepool {
SKIN *skin = [[SKIN alloc] init];
[skin load:@"/Extra/skin_cn.xml"];
[skin unload];
}
return 0;
}
2012-03-28 19:41:20.722 test[2321:707] =======start element:skin=========
2012-03-28 19:41:20.723 test[2321:707] skin name=(null)
2012-03-28 19:41:20.724 test[2321:707] =======element content=
=====
2012-03-28 19:41:20.725 test[2321:707] =======start element:string=========
2012-03-28 19:41:20.726 test[2321:707] string name= title id=1
2012-03-28 19:41:20.728 test[2321:707] =======element content=学习xml解析=====
2012-03-28 19:41:20.729 test[2321:707] =======end element:string=========
2012-03-28 19:41:20.730 test[2321:707] =======element content=
=====
2012-03-28 19:41:20.731 test[2321:707] =======start element:string=========
2012-03-28 19:41:20.732 test[2321:707] string name= content id=1
2012-03-28 19:41:20.733 test[2321:707] =======element content=hello world=====
2012-03-28 19:41:20.734 test[2321:707] =======end element:string=========
2012-03-28 19:41:20.735 test[2321:707] =======element content=
=====
2012-03-28 19:41:20.736 test[2321:707] =======end element:skin=========
2012-03-28 19:41:20.737 test[2321:707] =======end parse=========