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 相关文章推荐
双击滚屏-常用推荐
Nov 29 Javascript
javascript编程起步(第一课)
Jan 10 Javascript
js文字滚动停顿效果代码
Jun 28 Javascript
Bookmarklet实现启动jQuery(模仿 云输入法)
Sep 15 Javascript
jquery解决图片路径不存在执行替换路径
Feb 06 Javascript
jQuery :first选择器使用介绍
Aug 09 Javascript
表单序列化与jq中的serialize使用示例
Feb 21 Javascript
window.returnValue使用方法示例介绍
Jul 03 Javascript
jQuery实现可编辑的表格实例讲解(2)
Sep 17 Javascript
AngularJS使用ngMessages进行表单验证
Dec 27 Javascript
【经典源码收藏】基于jQuery的项目常见函数封装集合
Jun 07 Javascript
vue删除html内容的标签样式实例
Sep 13 Javascript
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中多维数组的遍历方法
2016/01/09 PHP
PHP调试的强悍利器之PHPDBG
2016/02/22 PHP
ThinkPHP 3.2.2实现事务操作的方法
2017/05/05 PHP
PHP设计模式之组合模式定义与应用示例
2020/02/01 PHP
jQuery中wrapInner()方法用法实例
2015/01/16 Javascript
JS的框架Polymer中的dom-if和is属性使用说明
2015/07/29 Javascript
ES6中非常实用的新特性介绍
2016/03/10 Javascript
深入理解jQuery中的事件冒泡
2016/05/24 Javascript
AngularJs表单校验功能实例代码
2017/02/09 Javascript
使用bat打开多个cmd窗口执行gulp、node
2017/02/17 Javascript
H5图片压缩与上传实例
2017/04/21 Javascript
Electron autoUpdater实现Windows安装包自动更新的方法
2018/12/24 Javascript
Array.filter中如何正确使用Async
2020/11/04 Javascript
从源码角度来回答keep-alive组件的缓存原理
2021/01/18 Javascript
[01:09]2014DOTA2国际邀请赛 TI4西雅图DOTA2 中国美女coser加油助威
2014/07/20 DOTA
通过C++学习Python
2015/01/20 Python
用python实现的线程池实例代码
2018/01/06 Python
Python 机器学习库 NumPy入门教程
2018/04/19 Python
基于Python实现人脸自动戴口罩系统
2020/02/06 Python
在python中实现求输出1-3+5-7+9-......101的和
2020/04/02 Python
Python 利用OpenCV给照片换底色的示例代码
2020/08/03 Python
Django修改app名称和数据表迁移方案实现
2020/09/17 Python
美国杂志订阅折扣与优惠网站:Magazines.com
2016/08/31 全球购物
英国领先的奢侈品零售商之一:CRUISE
2016/12/02 全球购物
英国历史最悠久的DJ设备供应商:DJ Finance、DJ Warehouse、The DJ Shop
2019/09/04 全球购物
JD Sports丹麦:英国领先的运动时尚零售商
2020/11/24 全球购物
英文自荐信
2013/12/19 职场文书
大学毕业后的十年规划
2014/01/07 职场文书
中文师范生自荐信
2014/01/30 职场文书
副护士长竞聘演讲稿
2014/04/30 职场文书
环保建议书200字
2014/05/14 职场文书
幼儿园教师节演讲稿
2014/09/03 职场文书
党员演讲稿
2014/09/04 职场文书
幼儿园大班毕业评语
2014/12/31 职场文书
2016年过年放假安排通知
2015/08/18 职场文书
简历中的自我评价怎么写呢?
2019/04/30 职场文书