你的位置:首页 > 操作系统

[操作系统]iOS xml解析


iOS

SAX 不用借助第三方,在解析过程中逐行解析.(NS

1.获取文件路径.

2.创建 NS 对象.

3.遵守协议,设置代理.

4.实现代理方法

  1>- (void)parserDidStartDocument:  ---- 开始解析

  2>- (void)parserDidEndDocument: ----解析结束

  3>- (void)parser:didStartElement:namespaceURI:qualifiedName:attributes: ----遇到开始标签

  4>- (void)parser:didEndElement:namespaceURI:qualifiedName: ----遇到结束标签

  5>- (void)parser: foundCharacters:  -----遇到值

 

详细代码:

 1 - (IBAction)id)sender { 2    3   //获取文件路径 4   NSString *filePath = [[NSBundle mainBundle] pathForResource:@"Student" ofType:@""]; 5   //转换为url 6   NSURL *url = [[NSURL alloc]initFileURLWithPath:filePath]; 7   //创建 NS 8   NS [[NS 9   parser.delegate = self;10   //开始解析11   [parser parse];12 }

代理方法实现:

 1 /** 2  * 开始解析  3 */ 4 - (void)parserDidStartDocument:(NS)parser{ 5   NSLog(@"开始解析"); 6   self.studentArray = [[NSMutableArray alloc]init]; 7 } 8  9 10 /**11  * 结束解析 12 */13 - (void)parserDidEndDocument:(NS)parser{14   NSLog(@"解析结束");15   for (StudentModel *stu in self.studentArray) {16     NSLog(@"%@",stu);17   }18 }19 20 /**21  * 遇到开始标签22 */23 - (void)parser:(NS)attributeDict{24   NSLog(@"遇到开始节点:%@",elementName);25   if ([elementName isEqualToString:@"student"]) {26     self.studentModel = [[StudentModel alloc]init];27   }28 }29 30 /**31  * 遇到结束标签32 */33 - (void)parser:(NS)qName{34   NSLog(@"遇到结束节点:%@",elementName);35  if ([elementName isEqualToString:@"name"]){36     self.studentModel.name = self.str;37   }else if ([elementName isEqualToString:@"age"]){38     self.studentModel.age = self.str;39   }else if ([elementName isEqualToString:@"gender"]){40     self.studentModel.gender = self.str;41   }else if ([elementName isEqualToString:@"student"]) {42     [self.studentArray addObject:self.studentModel];43   }44 }45 46 /**47  * 遇到的值48 */49 - (void)parser:(NSstring{50   NSLog(@"%@",string);51   self.str = string;52 }

 

DOM 解析,先获取全部文件内容,找出层次结构,需要用到第三方(GData

1.修改配置 Header Search Paths 加上:/usr/include/lib

  Other Linker Flags  加上:-l

2.获取文件路径

3.获取文件内容

4.获取

5.遍历节点取值

详细代码:

 1 - (IBAction)id)sender { 2    3   //获取文件地址 4   NSString *filPath = [[NSBundle mainBundle] pathForResource:@"Student" ofType:@""]; 5   NSError *error = nil; 6   //获取文件内容 7   NSString *contact = [NSString stringWithContentsOfFile:filPath encoding:NSUTF8StringEncoding error:&error]; 8   if (error == nil) { 9     NSLog(@"%@",contact);10   }else {11     NSLog(@"%@",error);12   }13   //第三方14   GData0 error:nil];15   16   //获取 17   GData [document rootElement];18   19   //获取 根节点包含的节点20   NSArray *array = [rootElement elementsForName:@"student"];21   22   NSMutableArray *arr = [[NSMutableArray alloc]init];23   24   //遍历节点,取值25   for (GDatain array) {26     StudentModel *model = [[StudentModel alloc]init];27     model.name = [[[ele elementsForName:@"name"] firstObject] stringValue];28     model.age = [[[ele elementsForName:@"age"] firstObject] stringValue];29     model.gender = [[[ele elementsForName:@"gender"] firstObject] stringValue];30     [arr addObject:model];31     32   }33   34   for (StudentModel *stu in arr) {35     NSLog(@"%@",stu);36   }37   38 }

 




马尔代夫旅游签证怎么办理马尔代夫旅游去哪好马尔代夫旅游团报价优惠马尔代夫蜜月旅游行程参考马尔代夫特价旅游多少钱大连徒步领略浪漫之都别样风情 从深圳如何去香港亚洲国际博览馆? 锦绣中华民俗村介绍?深圳锦绣中华简介? 从香港迪士尼到九龙湾国际展贸中心怎么走? 广东中山影视城门票多少钱?中山影视城有没有学生票? 大学城广东科学馆团购价格?大学城广东科学中心门票怎么预订? 大学城广东科学馆地址?大学城广东科学中心乘车路线? DFS集团T广场于铜锣湾希慎广场盛大开幕 黄腾峡山水乐园好玩吗?清远黄腾峡山水乐园怎么样? 霞客古渡景区电话?上林霞客古渡团购优惠多少? 清远黄腾峡山水乐园几点开门?黄腾峡山水乐园开门时间? 上林霞客古渡葵园门票多少钱?霞客古渡葵花什么时候开? 出境人文风俗:苗岭竹器武陵源的苗岭 谁终结了东女国的美丽神话 甘孜海螺沟藏族自治州住宿概况 出境人文风俗:龟纹石雕天子山景区的一种地方特产 ISL12027IBZ-T Datasheet ISL12027IBZ-T Datasheet ISL12027IV27Z-T Datasheet ISL12027IV27Z-T Datasheet IDT2305A-1DCG8 Datasheet IDT2305A-1DCG8 Datasheet 捷克旅行报价 捷克旅行报价 捷克旅行报价 深圳到捷克旅游 深圳到捷克旅游 深圳到捷克旅游 捷克旅游行程安排 捷克旅游行程安排 捷克旅游行程安排