xml



- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view from its nib.
self.view.backgroundColor = [UIColor yellowColor];
self.studentArray = [[NSMutableArray alloc] initWithCapacity:1];
//1获取xml路径
Nsstring * xmlPath = [[NSBundle mainBundle] pathForResource:@"Student" ofType:@"xml"];
//2根据xml路径,初始化XMLString
Nsstring * xmlString = [Nsstring stringWithContentsOfFile:xmlPath encoding:NSUTF8StringEncoding error:nil];
//3将解析的内容读入GdataxMLDocument对象中
GdataxMLDocument * docment = [[GdataxMLDocument alloc] initWithXMLString:xmlString options:0 error:nil];
//4获取根节点
GdataxMLElement * rootElement = [docment rootElement];
NSLog(@"++++++++++%@",rootElement);
//5获取根节点下的子节点(student);

NSArray * studentElments = [rootElement elementsForName:kStudent];
NSLog(@"%d",[studentElments count]);
for (GdataxMLElement * element in studentElments)
{
Nsstring * name = [[[element elementsForName:kName] firstObject] stringValue];
Nsstring * age = [[[element elementsForName:kAge] firstObject] stringValue];
Nsstring * sex = [[[element elementsForName:kSex] firstObject] stringValue];
Student * stu = [[Student alloc] init];
stu.name = name;
stu.age = age;
stu.sex = sex;
NSLog(@"%@",stu.name);
[self.studentArray addobject:stu];
}

for (Student * stu in self.studentArray)
{
NSLog(@"%@ %@ %@",stu.name,stu.sex,stu.age);
}
// xPath/代表绝对路径
// //代表相对路径
}

sax

- (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view from its nib. //文件读写第一步,Nsstring * filePath = [[NSBundle mainBundle] pathForResource:@"Student" ofType:@"xml"]; NSData * data = [[NSData alloc] initWithContentsOfFile:filePath]; [filePath release]; //系统提供的解析类,解析SAX; NSXMLParser * pleser = [[NSXMLParser alloc] initWithData:data]; pleser.delegate = self; [pleser parse];//开始解析 } #pragma mark NSXMLParserDelegate // Document handling methods //开始解析文档 - (void)parserDidStartDocument:(NSXMLParser *)parser { NSLog(@"开始解析文档"); self.studentArray = [[NSMutableArray alloc] init]; } //结束解析文档 - (void)parserDidEndDocument:(NSXMLParser *)parser { NSLog(@"结束解析文档"); for (Student * stu in self.studentArray) { NSLog(@"%@,%@,%@",stu.age,stu.sex); } } //解析开始标签(遇到开始标签,进入方法) - (void)parser:(NSXMLParser *)parser didStartElement:(Nsstring *)elementName namespaceURI:(Nsstring *)namespaceURI qualifiedname:(Nsstring *)qName attributes:(NSDictionary *)attributeDict; { NSLog(@"解析开始标签 StartElement:%@",elementName); if ([elementName isEqualToString:kStudent]) { self.student = [[Student alloc] init]; } else if ([elementName isEqualToString:kName]|| [elementName isEqualToString:kSex]||[elementName isEqualToString:kAge]) { self.isstore = YES; } } //解析开始标签后面的内容. //解析结束标签(遇到结束标签,进入方法) - (void)parser:(NSXMLParser *)parser didEndElement:(Nsstring *)elementName namespaceURI:(Nsstring *)namespaceURI qualifiedname:(Nsstring *)qName { NSLog(@"解析结束标签 EndElement:%@",elementName); if ([elementName isEqualToString:kStudent]) { [self.studentArray addobject:self.student]; } else if ([elementName isEqualToString:kName]) { self.student.name = self.currentString; } else if ([elementName isEqualToString:kSex]) { self.student.sex = self.currentString; } else if ([elementName isEqualToString:kAge]) { self.student.age = self.currentString; } self.isstore = NO; } //解析开始标签后面的内容 - (void)parser:(NSXMLParser *)parser foundCharacters:(Nsstring *)string { //NSLog(@" 解析标签内容:%@",string); if (self.isstore) { self.currentString = string;//只有标签是name,sex,age,才赋值. } }

相关文章

php输出xml格式字符串
J2ME Mobile 3D入门教程系列文章之一
XML轻松学习手册
XML入门的常见问题(一)
XML入门的常见问题(三)
XML轻松学习手册(2)XML概念