iOS UI13_数据解析XML_,JSON
- (IBAction)parserButton:(id)sender {
parserXML *parser =[[parserXML
alloc] init];
[parser
startParser];
//遍历学生的姓名
for (Student *stu
in parser.stuArr) {
NSLog(@"%@",stu.name);
}
}
- (IBAction)domButton:(id)sender {
NSMutableArray *stuArr =[DOMXML
DOMStart];
for (Student *stu
in stuArr) {
NSLog(@"%@",stu.name);
}
}
- (IBAction)jsonButton:(id)sender {
//对本地数据进行解析
NSString *path=[[NSBundle
mainBundle] pathForResource:@"movielist"
ofType:@"txt"];
NSData *data =[NSData
dataWithContentsOfFile:path];
//第二个參数,指定一个可变的容器来接收解析之后的数据
NSMutableDictionary *dic=[NSJSONSerialization
JSONObjectWithData:data options:NSJSONReadingMutableContainers
error:nil];
NSMutableArray *movieArr =[NSMutableArray
array];
for (NSMutableDictionary *temp
in dic[@"result"]) {
Movie *movie =[[Movie
alloc] init];
[movie setValuesForKeysWithDictionary:temp];
[movieArr
addObject:movie];
[movie
release];
}
}
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 = [[NSBundle
mainBundle] pathForResource:@"Student"
ofType:@"xml"];
//把路径文件内容转换成NSData对象保存
NSData *data = [NSData
dataWithContentsOfFile:path];
//
创建一个xml的解析工具
NSXMLParser *parser =[[NSXMLParser
alloc] initWithData:data];
//须要设置解析工具的代理人
parser.delegate =self;
//開始解析
[parser
parse];
}
#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 =[NSMutableArray
array];
}else
if ([elementName isEqualToString:@"student" ]){
//碰到student,意味着这是一个新的对象,须要创建一个对象来接收数据,而且放到学生数组中
Student *stu=[[Student
alloc] init];
[self.stuArr
addObject:stu];
[stu
release];
}
}
-(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.stuArr
lastObject];
// if ([elementName isEqualToString:@"name"]) {
// stu.name =self.tempStr;
// }
//通过KVC进行赋值
[stu
setValue:self.tempStr
forKey:elementName];
}
@end
iOS UI13_数据解析XML_,JSON的更多相关文章
- ios 网络数据下载和JSON解析
ios 网络数据下载和JSON解析 简介 在本文中笔者将要给大家介绍ios中如何利用NSURLConnection从网络上下载数据,如何解析下载下来的JSON数据格式,以及如何显示数据和图片的异步下载 ...
- 浅议iOS网络数据解析
/*------------------------------------ 数据解析: 1.JSON数据 --------------------------------*/ 重点:1.什么是JSO ...
- Java数据解析之JSON
文章大纲 一.JSON介绍二.常见框架介绍与实战三.Studio中GsonFormat插件使用四.项目源码下载(含参考资料)五.参考文档 一.JSON介绍 1. 简介 JSON 的全称是 Ja ...
- 利用python将excel数据解析成json格式
利用python将excel数据解析成json格式 转成json方便项目中用post请求推送数据自定义数据,也方便测试: import xlrdimport jsonimport requests d ...
- IOS 请求数据解析 XML 和 JSON
好久没写文章了,回忆一下以前的内容记录一下吧. 这一段主要接触的就是数据解析,就说一下数据解析 现在数据解析一般解析两种数据 xml 和 JSON 那就从xml解析说起吧 xml解析需要用到一个类 N ...
- iOS之数据解析时<null>的处理
在iOS开发过程中经常需要与服务器进行数据通讯,JSON就是一种常用的高效简洁的数据格式. 问题: 在项目中,一直遇到一个坑的问题,程序在获取某些数据之后莫名崩溃.原因是:由于服务器的数据库中有些字段 ...
- iOS - XML 数据解析
前言 @interface NSXMLParser : NSObject public class NSXMLParser : NSObject 1.XML 数据 XML(Extensible Mar ...
- iOS - Plist 数据解析
前言 NS_AVAILABLE(10_6, 4_0) @interface NSPropertyListSerialization : NSObject 如果对象是 NSArray 或 NSDicti ...
- Unity3d-XML文件数据解析&JSON数据解析
1.XML文件数据解析:(首先须要导入XMLParser解析器,The latest released download from:http://dev.grumpyferret.com/unity/ ...
随机推荐
- bzoj 2330 [SCOI2011]糖果 差分约束模板
题目大意 幼儿园里有N个小朋友,lxhgww老师现在想要给这些小朋友们分配糖果,要求每个小朋友都要分到糖果.但是小朋友们也有嫉妒心,总是会提出一些要求,比如小明不希望小红分到的糖果比他的多,于是在分配 ...
- Java--消除重复数字后的最大值
描述: 一个长整型数字,消除重复的数字后,得到最大的一个数字. 如12341 ,消除重复的1,可得到1234或2341,取最大值2341. 42234,消除4 得到4223 或者 2234 ,再消除2 ...
- 从0到1:全面理解RPC远程调用
上一篇关于 WSGI 的硬核长文,不知道有多少同学,能够从头看到尾的,不管你们有没有看得很过瘾,反正我是写得很爽,总有一种将一样知识吃透了的错觉. 今天我又给自己挖坑了,打算将 rpc 远程调用的知识 ...
- Bzoj3747 [POI1015] Kinoman
Description 共有m部电影,编号为1~m,第i部电影的好看值为w[i]. 在n天之中(从1~n编号)每天会放映一部电影,第i天放映的是第f[i]部. 你可以选择l,r(1<=l< ...
- 【NOIP2015】子串(字符串DP)
题意:有AB两个字符串,用A中连续的K串匹配B全串,问不同的方案总数 n<=1000,m<=200,k<=m 思路:设dp[k,i,j]为用k串 A中前i个字符匹配B中前j个字符的方 ...
- linux-3.2.36内核启动2-setup_arch中的内存初始化1(arm平台 分析高端内存和初始化memblock)【转】
转自:http://blog.csdn.net/tommy_wxie/article/details/17093307 上一篇微博留下了这几个函数,现在我们来分析它们 sanity_c ...
- 标准C程序设计七---42
Linux应用 编程深入 语言编程 标准C程序设计七---经典C11程序设计 以下内容为阅读: <标准C程序设计>(第7版) 作者 ...
- AC日记——[USACO07DEC]手链Charm Bracelet 洛谷 P2871
题目描述 Bessie has gone to the mall's jewelry store and spies a charm bracelet. Of course, she'd like t ...
- vs-插件+配置
{ "window.zoomLevel": 0, "files.autoSave": "off", "editor.fontSiz ...
- 牛客网 Wannafly挑战赛11 A.白兔的分身术
水一水博客. 链接:https://www.nowcoder.com/acm/contest/73/A来源:牛客网 A.白兔的分身术 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C ...