iOS UI13_数据解析XML_,JSON
来源:互联网 发布:中级java工程师薪资 编辑:程序博客网 时间:2024/06/06 11:38
- (IBAction)parserButton:(id)sender {
parserXML *parser =[[parserXMLalloc] init];
[parserstartParser];
//遍历学生的姓名
for (Student *stuin parser.stuArr) {
NSLog(@"%@",stu.name);
}
}
- (IBAction)domButton:(id)sender {
NSMutableArray *stuArr =[DOMXMLDOMStart];
for (Student *stuin stuArr) {
NSLog(@"%@",stu.name);
}
}
- (IBAction)jsonButton:(id)sender {
//对本地数据进行解析
NSString *path=[[NSBundlemainBundle] pathForResource:@"movielist"ofType:@"txt"];
NSData *data =[NSDatadataWithContentsOfFile:path];
//第二个参数,指定一个可变的容器来接收解析之后的数据
NSMutableDictionary *dic=[NSJSONSerializationJSONObjectWithData:data options:NSJSONReadingMutableContainerserror:nil];
NSMutableArray *movieArr =[NSMutableArrayarray];
for (NSMutableDictionary *tempin dic[@"result"]) {
Movie *movie =[[Moviealloc] init];
[movie setValuesForKeysWithDictionary:temp];
[movieArraddObject:movie];
[movierelease];
}
}
parserXML.h
#import <Foundation/Foundation.h>
#import "Student.h"
@interface parserXML :NSObject<NSXMLParserDelegate>
//用一条属性,数组,来装所有解析好的model对象
@property(nonatomic,retain)NSMutableArray *stuArr;
//用来临时保存节点内容的字符串
@property(nonatomic,retain)NSString *tempStr;
//给一个开始解析的方法
-(void)startParser;
@end
parserXML.m
//
// parserXML.m
// UI13_数据解析XML_,JSON
//
// Created by dllo on 15/8/14.
// Copyright (c) 2015年 zhozhicheng. All rights reserved.
//
#import "parserXML.h"
@implementation parserXML
-(void)startParser
{
//根据文件名和类型,获取文件所在路径
NSString *path = [[NSBundlemainBundle] pathForResource:@"Student"ofType:@"xml"];
//把路径文件内容转换成NSData对象保存
NSData *data = [NSDatadataWithContentsOfFile:path];
// 创建一个xml的解析工具
NSXMLParser *parser =[[NSXMLParseralloc] initWithData:data];
//需要设置解析工具的代理人
parser.delegate =self;
//开始解析
[parserparse];
}
#pragma mark 开始执行协议方法
-(void)parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName attributes:(NSDictionary *)attributeDict
{
//这个方法只要一碰到节点就会自动走这个方法
if ([elementName isEqualToString:@"Student"]) {
//当碰到根节点Student,需要对数组进行初始化
self.stuArr =[NSMutableArrayarray];
}elseif ([elementName isEqualToString:@"student" ]){
//碰到student,意味着这是一个新的对象,需要创建一个对象来接收数据,并且放到学生数组中
Student *stu=[[Studentalloc] init];
[self.stuArraddObject:stu];
[sturelease];
}
}
-(void)parser:(NSXMLParser *)parser foundCharacters:(NSString *)string
{
//找到节点内容的时候需要调用,需要用一个属性来保存对应节点的内容string
// 保存节点内容
self.tempStr = string;
}
-(void)parser:(NSXMLParser *)parser didEndElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName
{
//只要到节点结束就会走这个方法
//没有操作完的对象在数组的最后一位
Student *stu = [self.stuArrlastObject];
// if ([elementName isEqualToString:@"name"]) {
// stu.name =self.tempStr;
// }
//通过KVC进行赋值
[stusetValue:self.tempStrforKey:elementName];
}
@end
- iOS UI13_数据解析XML_,JSON
- XML_解析
- IOS解析Json数据
- IOS-----> Json数据解析
- ios json数据解析
- iOS json数据解析
- ios json数据解析
- iOS解析json数据
- iOS JSON数据解析
- UI13_数据解析之图片相关(UIActionSheet,UIImagePickerController, UINavigationController协议方法)
- iOS中JSON数据解析
- ios 解析不规则json数据
- IOS数据解析之json
- iOS数据解析之json
- IOS中JSON数据解析
- iOS 解析不规则json数据
- iOS 数据解析 JSON XML
- iOS之 json数据解析
- 华为OJ平台试题 —— 数组:输入n个整数,输出其中最小的k个
- Legal or Not
- HDOJ-1251 字典树
- GDOI2016模拟8.16第一字符串
- 蓝的成长记——追逐DBA(18):小机上WAS集群故障,由一次更换IP引起
- iOS UI13_数据解析XML_,JSON
- Hadoop & Spark
- 三种继承方式的区别
- OpenGL 获取当前屏幕坐标对应的三维坐标,使用很简单glu库中的一个函数
- 原来如此
- kali 2.0安装VM tools
- Oracle学习笔记20150818一些常见查询语句
- Swift环境下实现UILabel居上 居中 居下对齐
- 软件汉化