ios xml
2016-06-29 10:59
483 查看
网站:W3SCHOOL
XML包括:声明,处理指令(可选) 元素
XML解析 SAX 和DOM
SAX简单的XML 的API
DOM 文档对象模型
XML文件
<?xml version ="1.0" encoding="UTF8"
standalone="yes"?>
<!--以下是你一个学生名单-->
<student_list>
<student>
<stu_num>200030081205</stu_num>
<stu_name>otis</stu_name>
<stu_class>T23</stu_class>
</student>
<student>
<stu_num>200330081205</stu_num>
<stu_name>this</stu_name>
<stu_class>T24</stu_class>
</student>
</student_list>
XML的解析
-(IBAction)btnClickXMLParseOfSAX:(id)sender
{//加载文件
NSString*path=[[NSBundlemainBundle]pathForResource:@"text"ofType:@"xml"];
NSFileHandle*file=[NSFileHandlefileHandleForReadingAtPath:path];//定义一个文件句柄关联路径
NSData*data=[file readDataToEndOfFile];//读取文件数据到DATA
[file
closeFile];//关闭文件
self.m_pXmlPatse=[[NSXMLParseralloc]initWithData:data];//根据XML数据进行创建解析器
[self.m_pXmlPatsesetDelegate:self];
//设定代理
self.m_pStrSaxTmp=[[NSMutableStringalloc]init];
self.m_pStrSaxResult=[[NSMutableStringalloc]init];
BOOL
flag=[_m_pXmlPatseparse];//解析
返回一个BOOL值
标志解析成功或失败
if (flag) {
[_m_pStrSaxResultappendFormat:@"%@\r\n",@"获取指定路径的
xml
文件失败"];
}
else
{
[_m_pStrSaxResultappendFormat:@"%@\r\n",@"获取指定路径的
xml
文件失败"];
}
}
-(void)parserDidStartDocument:(NSXMLParser *)parser
{
[_m_pStrSaxResultappendFormat:@"%@\r\n",@"开始解析 xml of SAX文件"];
[_m_pStrSaxResultappendFormat:@"%@\r\n",@"******student********"];
}
-(void)parser:(NSXMLParser *)parser foundCharacters:(NSString *)string//遇到数据时回调,
{
[_m_pStrSaxTmpsetString:@" "];
[_m_pStrSaxTmpappendFormat:@"%@",string];
NSLog(@"string=%@",string);
}
-(void)parser:(NSXMLParser *)parser didEndElement:(NSString *)elementName
namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName
{
if (NSOrderedSame==[elementName
compare:@"student"]) {
[_m_pStrSaxResultappendFormat:@"%@\n",@"**********student*******"];
}
else if(NSOrderedSame==[elementName
compare:@"student_list"])
{
}
else{
[_m_pStrSaxResultappendFormat:@"%@=%@\r\n",elementName,_m_pStrSaxTmp];
}
}
//完成解析XML文档
-(void)parserDidEndDocument:(NSXMLParser *)parser
{
[_m_pStrSaxResultappendFormat:@"%@",@"解析xml
完成"];
[_m_pTextViewResultsetText:_m_pStrSaxResult];
}
XML包括:声明,处理指令(可选) 元素
XML解析 SAX 和DOM
SAX简单的XML 的API
DOM 文档对象模型
XML文件
<?xml version ="1.0" encoding="UTF8"
standalone="yes"?>
<!--以下是你一个学生名单-->
<student_list>
<student>
<stu_num>200030081205</stu_num>
<stu_name>otis</stu_name>
<stu_class>T23</stu_class>
</student>
<student>
<stu_num>200330081205</stu_num>
<stu_name>this</stu_name>
<stu_class>T24</stu_class>
</student>
</student_list>
XML的解析
-(IBAction)btnClickXMLParseOfSAX:(id)sender
{//加载文件
NSString*path=[[NSBundlemainBundle]pathForResource:@"text"ofType:@"xml"];
NSFileHandle*file=[NSFileHandlefileHandleForReadingAtPath:path];//定义一个文件句柄关联路径
NSData*data=[file readDataToEndOfFile];//读取文件数据到DATA
[file
closeFile];//关闭文件
self.m_pXmlPatse=[[NSXMLParseralloc]initWithData:data];//根据XML数据进行创建解析器
[self.m_pXmlPatsesetDelegate:self];
//设定代理
self.m_pStrSaxTmp=[[NSMutableStringalloc]init];
self.m_pStrSaxResult=[[NSMutableStringalloc]init];
BOOL
flag=[_m_pXmlPatseparse];//解析
返回一个BOOL值
标志解析成功或失败
if (flag) {
[_m_pStrSaxResultappendFormat:@"%@\r\n",@"获取指定路径的
xml
文件失败"];
}
else
{
[_m_pStrSaxResultappendFormat:@"%@\r\n",@"获取指定路径的
xml
文件失败"];
}
}
-(void)parserDidStartDocument:(NSXMLParser *)parser
{
[_m_pStrSaxResultappendFormat:@"%@\r\n",@"开始解析 xml of SAX文件"];
[_m_pStrSaxResultappendFormat:@"%@\r\n",@"******student********"];
}
-(void)parser:(NSXMLParser *)parser foundCharacters:(NSString *)string//遇到数据时回调,
{
[_m_pStrSaxTmpsetString:@" "];
[_m_pStrSaxTmpappendFormat:@"%@",string];
NSLog(@"string=%@",string);
}
-(void)parser:(NSXMLParser *)parser didEndElement:(NSString *)elementName
namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName
{
if (NSOrderedSame==[elementName
compare:@"student"]) {
[_m_pStrSaxResultappendFormat:@"%@\n",@"**********student*******"];
}
else if(NSOrderedSame==[elementName
compare:@"student_list"])
{
}
else{
[_m_pStrSaxResultappendFormat:@"%@=%@\r\n",elementName,_m_pStrSaxTmp];
}
}
//完成解析XML文档
-(void)parserDidEndDocument:(NSXMLParser *)parser
{
[_m_pStrSaxResultappendFormat:@"%@",@"解析xml
完成"];
[_m_pTextViewResultsetText:_m_pStrSaxResult];
}
相关文章推荐
- iOS 原生的二维码/条形码扫描
- 字符串的相关,新手终结,截取,匹配,分隔,数字转化等
- ios oc实现排序算法
- 【转】iOS学习之Autolayout(代码添加约束) -- 不错不错
- Jenkins学习笔记
- iOS URLEncode
- 《Motion Design for iOS》(二十九)
- 添加索引 两种方式,ios新手总结篇
- iOS屏幕锁实现
- ios 常用公共方法
- iOS开发常用命令汇总
- 将Log日志重定向输出到文件中保存(iOS)
- iOS CocoaPods导入的库其头文件导入的方法
- IOS开发向右滑动返回前一个页面功能(demo)
- iOS 图片等比压缩layout
- iOS开发中调用网址、拨打电话、发送短信、发送邮件
- iOS 横竖屏切换(源码讲解,图加源码)
- iOS MVVM+RAC 再不学你就OUT了
- 隐藏导航栏底部横线
- 详解iOS App开发中session和coockie的用户数据存储处理