加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

NSXMLParser解析简例

发布时间:2020-12-16 09:22:23 所属栏目:百科 来源:网络整理
导读:本篇以以下类型的XML为例解析: ?xml version= "1.0" encoding= "utf-8" ? resources string name = "e0" 密码错误 /string "e1" 手机号不存在 /string "e2" 未找到该城市 /string "e3" 参数异常 /string "e4" 鱼种库为空 /string "e6" 文件为空 /string "e7

本篇以以下类型的XML为例解析:

<?xml version="1.0"encoding="utf-8"?>

<resources>

<stringname="e0">密码错误</string>

"e1">手机号不存在</string>

"e2">未找到该城市</string>

"e3">参数异常</string>

"e4">鱼种库为空</string>

"e6">文件为空</string>

"e7">参数异常或为空</string>

"e8">发布失败</string>

"e10">token异常,请重新登录</string>

"e11">钓点不存在</string>

"e12">钓点id未找到</string>

"e13">错误</string>

"e14">收藏失败</string>

"e15">已收藏</string>

"e16">经纬度参数错误</string>

"e18">城市不能为空</string>

"e17">无更多钓点</string>

"e19">插入失败</string>

"e20">手机号码或验证码不正确</string>

"e21">参数类型错误</string>

"e22">数据写入错误</string>

</resources>


-(void)parserXMLFile

{

//打开xml,读取文件内容后关闭文件

NSString* path= [[NSBundlemainBundle]pathForResource:@"error"ofType@"xml"];

NSFileHandle* file = [fileHandleForReadingAtPath:path];

NSData* data = [filereadDataToEndOfFile];

[filecloseFile];

//初始化解析工具

NSXMLParser* m_parser = [[NSXMLParseralloc]initWithData:data];

//设置代理

[m_parsersetDelegate:self];

//开始解析,设置解析结果flag,解析结束后会执行

BOOLflag = [m_parserparse];

if(flag) {

QLLog(@"解析成功");

}else{

解析失败");

}

}

//开始解析

-(void)parserDidStartDocument:(NSXMLParser*)parser

{

dicXML= [[NSMutableDictionaryalloc]initWithCapacity:10];

}

//遇到开始标记

-(void)parser:(NSXMLParser*)parser didStartElement:(NSString*)elementName namespaceURI:(NSString*)namespaceURI qualifiedName:(NSString*)qName attributes:(NSDictionary*)attributeDict

{

//QLLog(@"elementName:%@n namespaceURI:%@n qName:%@ n attributeDic:%@",elementName,namespaceURI,qName,attributeDict);

if([elementNameisEqualToString:@"string"]) {

keyCode= [attributeDictobjectForKey:@"name"];//错误码

QLLog(@"keyCode:%@"keyCode);

}

}

//遇到结束标记

-(NSXMLParser*)parser didEndElement:(NSString*)qName{

//QLLog(@"end:elementName:%@n namespaceURI:%@n qName:%@ n",qName);

}

//节点中有值时进入此方法

-(NSXMLParser*)parser foundCharacters:(NSString*)string

{

(@"key:%@");

@"value:%@",string);错误说明

string = [stringstringByReplacingOccurrencesOfString@"n"withString@""@" "];

if(keyCode.length&&string.length){

[dicXMLsetObject:stringforKey:keyCode];

}

}

//解析结束

-(void)parserDidEndDocument:(NSXMLParser*)parser

{

(@"dicData:%@");

}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读