XML文件转化成NSData对象的方法


Posted in Javascript onAugust 12, 2015

 

NSData *xmlData = [[NSData alloc]initWithContentsOfFile:[NSString stringWithFormat:@"%@/People.xml",[[NSBundle mainBundle] resourcePath]]]; 
  //2.将xmlData转化成xml文档 
  GDataXMLDocument *xmlDocument = [[GDataXMLDocument alloc]initWithData:xmlData options:0 error:nil]; 
  //3.得到节点 
  GDataXMLElement *rootElement = xmlDocument.rootElement; 
  //4.得到子节点 
/*NSArray *elementArray = rootElement.children; 
  //得到classone节点 
  GDataXMLElement *classoneElement = [elementArray firstObject]; 
  for(GDataXMLElement *element in classoneElement.children) 
  { 
    //得到当前节点的文本值 
    NSLog(@"%@",element.stringValue); 
    if (element.children.count>0) { 
      GDataXMLElement *infoElement = [element.children lastObject]; 
      //获得节点的所有属性和属性值 
      NSArray *attArray = infoElement.attributes; 
      for (GDataXMLElement *attElement in attArray) { 
        //得到属性名和属性值 
        NSLog(@"%@-%@",attElement.name,attElement.stringValue); 
      } 
    } 
  } 
  */ 
  //模糊查找 
  NSArray *eArray = [rootElement nodesForXPath:@"//info" error:nil]; 
  NSLog(@"%@",eArray);

iPhone开发 解析xml NSData

具体内容请看下文代码分析:

  

xml字符串为:
<users>
<user name="hoge" age="20" />
<user name="fuga" age="30" />
</users>
 
//解析按钮事件
-(IBAction)btnXml
{
  
  NSString* str= [uitextview1 text];
  //string转成data
  NSData *xmlData = [str dataUsingEncoding: NSUTF8StringEncoding];
  //对xml进行解析需要使用NSXMLParser类,首先声明一个NSXMLParser对象  
  //开始解析 
  NSXMLParser* xmlRead = [[NSXMLParser alloc] initWithData:xmlData];//初始化NSXMLParser对象  
  [xmlRead setDelegate:self];//设置NSXMLParser对象的解析方法代理 
  [xmlRead parse];//调用代理解析NSXMLParser对象,看解析是否成功   
}
 
//解析器,从两个结点之间读取内容
- (void)parser:(NSXMLParser *)parser foundCharacters:(NSString *)string {
  //NSLog(@"%@",string);
}
 
//获得结点结尾的值
- (void)parser:(NSXMLParser *)parser didEndElement:(NSString *)elementName
 namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName {
  //NSLog(@"%@",elementName);
}
//获得结点头的值
- (void)parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName
 namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName
  attributes:(NSDictionary *)attributeDict 
{
  //NSLog(@"%@",elementName);
  if([elementName isEqualToString: @"user"])
  {
    NSString* strName=[attributeDict valueForKey:@"name"];
    NSString* strAge=[attributeDict valueForKey:@"age"]; 
    NSString* strUser=uitextview2.text;
    strUser=[strUser stringByAppendingFormat:@"姓名:%@,年龄:%@\n",strName,strAge];
    [uitextview2 setText:strUser];
    //NSLog(@"姓名:%@,年龄:%@", strName,strAge);
  }
}
Javascript 相关文章推荐
JSON 入门指南 想了解json的朋友可以看下
Aug 26 Javascript
你必须知道的Javascript知识点之&quot;深入理解作用域链&quot;的介绍
Apr 23 Javascript
使用js获取地址栏中传递的值
Jul 02 Javascript
千分位数字格式化(用逗号隔开 代码已做了修改 支持0-9位逗号隔开)的JS代码
Dec 05 Javascript
Node.js 的异步 IO 性能探讨
Oct 08 Javascript
jQuery的each循环用法简单示例
Jun 12 Javascript
深入理解jQuery3.0的domManip函数
Sep 01 Javascript
Bootstrap栅格系统学习笔记
Nov 25 Javascript
解析js如何获取css样式
Dec 11 Javascript
详解如何在项目中使用jest测试react native组件
Feb 09 Javascript
Webpack中SplitChunksPlugin 配置参数详解
Mar 24 Javascript
Vue中Object.assign清空数据报错的解决方案
Mar 03 Vue.js
javascript实现点击单选按钮链接转向对应网址的方法
Aug 12 #Javascript
jQuery实现动态添加和删除一个div
Aug 12 #Javascript
JavaScript多线程详解
Aug 12 #Javascript
javascript实现在下拉列表中显示多级树形菜单的方法
Aug 12 #Javascript
JavaScript实现同一页面内两个表单互相传值的方法
Aug 12 #Javascript
JavaScript实现点击单选按钮改变输入框中文本域内容的方法
Aug 12 #Javascript
JavaScript检测并限制复选框选中个数的方法
Aug 12 #Javascript
You might like
ThinkPHP中pathinfo的访问模式、路径访问模式及URL重写总结
2014/08/23 PHP
php实现encode64编码类实例
2015/03/24 PHP
Linux系统下php获得系统分区信息的方法
2015/03/30 PHP
php微信高级接口调用方法(自定义菜单接口、客服接口、二维码)
2016/11/28 PHP
JavaScript中的对象化编程
2008/01/16 Javascript
jquery实现的一个简单进度条效果实例
2014/05/12 Javascript
js清空form表单中的内容示例
2014/05/20 Javascript
jQuery 隐藏和显示 input 默认值示例
2014/06/03 Javascript
js改变embed标签src值的方法
2015/04/10 Javascript
jquery删除table当前行的实例代码
2016/10/07 Javascript
微信小程序  生命周期详解
2016/10/27 Javascript
Vue Spa切换页面时更改标题的实例代码
2017/07/15 Javascript
使用jQuery实现鼠标点击左右按钮滑动切换
2017/08/04 jQuery
Vue列表如何实现滚动到指定位置样式改变效果
2020/05/09 Javascript
Nuxt默认模板、默认布局和自定义错误页面的实现
2020/05/11 Javascript
JS highcharts动态柱状图原理及实现
2020/10/16 Javascript
[40:50]2014 DOTA2国际邀请赛中国区预选赛 5 23 CIS VS LGD第四场
2014/05/24 DOTA
[03:26]回顾2015国际邀请赛中国区预选赛
2015/06/09 DOTA
[26:50]2018完美盛典DOTA2表演赛
2018/12/17 DOTA
python生成excel的实例代码
2017/11/08 Python
python简单实现操作Mysql数据库
2018/01/29 Python
在django admin中添加自定义视图的例子
2019/07/26 Python
使用Bazel编译TensorBoard教程
2020/02/15 Python
春秋航空官方网站:Spring Airlines
2017/09/27 全球购物
女子锻炼服装和瑜伽服装:Splits59
2019/03/04 全球购物
英国领先的体验日提供商:Buyagift
2019/04/19 全球购物
Everlast官网:拳击、综合格斗和健身相关的体育用品
2020/08/03 全球购物
美国一站式电动和手动工具商店:International Tool
2020/11/26 全球购物
教师演讲稿范文
2014/01/08 职场文书
金融学专业大学生职业生涯规划
2014/03/07 职场文书
妇女儿童发展规划实施方案
2014/03/16 职场文书
大学生实习证明范文(5篇)
2014/09/18 职场文书
软件研发工程师岗位职责
2014/09/30 职场文书
学校党委干部个人对照检查材料思想汇报
2014/10/09 职场文书
判缓刑人员个人思想汇报
2014/10/10 职场文书
2014年服务员个人工作总结
2014/12/23 职场文书