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 相关文章推荐
js常用排序实现代码
Dec 28 Javascript
javascript中节点的最近的相关节点访问方法
Mar 20 Javascript
js获取url中的参数且参数为中文时通过js解码
Mar 19 Javascript
Node.js实现批量去除BOM文件头
Dec 20 Javascript
js简单网速测试方法完整实例
Dec 15 Javascript
基于BootStrap与jQuery.validate实现表单提交校验功能
Dec 22 Javascript
js+css3实现旋转效果
Jan 20 Javascript
Bootstrap BootstrapDialog使用详解
Feb 17 Javascript
js实现鼠标单击Tab表单切换效果
May 16 Javascript
详解简单易懂的 ES6 Iterators 指南和示例
Sep 24 Javascript
JS原型prototype和__proto__用法实例分析
Mar 14 Javascript
vue中三级导航的菜单权限控制
Mar 31 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
php设计模式 Proxy (代理模式)
2011/06/26 PHP
PHP编程风格规范分享
2014/01/15 PHP
mantis安装、配置和使用中的问题小结
2014/07/14 PHP
php中ob_get_length缓冲与获取缓冲长度实例
2014/11/20 PHP
100行PHP代码实现socks5代理服务器
2016/04/28 PHP
PHP接口并发测试的方法(推荐)
2016/12/15 PHP
php 静态属性和静态方法区别详解
2017/04/09 PHP
javascript中巧用“闭包”实现程序的暂停执行功能
2007/04/04 Javascript
jquery 插件开发方法小结
2009/10/23 Javascript
图片上传判断及预览脚本的效果实例
2013/08/07 Javascript
jquery 3D 标签云示例代码
2014/06/12 Javascript
提升PHP安全:8个必须修改的PHP默认配置
2014/11/17 Javascript
基于JQuery实现仿网易邮箱全屏动感滚动插件fullPage
2015/09/20 Javascript
jquery获取url参数及url加参数的方法
2015/10/26 Javascript
Javascript中this绑定的3种方法与比较
2016/10/13 Javascript
Javascript highcharts 饼图显示数量和百分比实例代码
2016/12/06 Javascript
基于vue2的table分页组件实现方法
2017/03/20 Javascript
windows系统下更新nodejs版本的方案
2017/11/24 NodeJs
bootstrap 点击空白处popover弹出框隐藏实例
2018/01/24 Javascript
使用 node.js 模仿 Apache 小部分功能
2019/07/07 Javascript
JS实现可以用键盘方向键控制的动画
2020/12/11 Javascript
[02:45]DOTA2英雄基础教程 伐木机
2013/12/23 DOTA
python 写的一个爬虫程序源码
2016/02/28 Python
Python生成随机数组的方法小结
2017/04/15 Python
使用paramiko远程执行命令、下发文件的实例
2017/10/01 Python
解决Pycharm下面出现No R interpreter defined的问题
2018/10/29 Python
Python自定义一个类实现字典dict功能的方法
2019/01/19 Python
Flask框架重定向,错误显示,Responses响应及Sessions会话操作示例
2019/08/01 Python
python批量生成条形码的示例
2020/10/10 Python
你可能不熟练的十个前端HTML5经典面试题
2018/07/03 HTML / CSS
Sunglasses Shop荷兰站:英国最大的太阳镜独立在线零售商和供应商
2017/01/08 全球购物
CHARLES & KEITH加拿大官网:新加坡时尚品牌
2020/03/26 全球购物
PHP笔试题
2012/02/22 面试题
教师见习期自我鉴定
2014/04/28 职场文书
医学求职自荐信
2014/06/21 职场文书
Python列表的索引与切片
2022/04/07 Python