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 相关文章推荐
jQuery 动画基础教程
Dec 25 Javascript
新老版本juqery获取radio对象的方法
Mar 01 Javascript
js判断undefined类型,undefined,null, 的区别详细解析
Dec 16 Javascript
js 异步操作回调函数如何控制执行顺序
Dec 24 Javascript
动态的创建一个元素createElement及删除一个元素
Jan 24 Javascript
jQuery实现为图片添加镜头放大效果的方法
Jun 25 Javascript
原生js实现倒计时功能(多种格式调用)
Jan 12 Javascript
微信小程序实战之登录页面制作(5)
Mar 30 Javascript
angularjs 页面自适应高度的方法
Jan 17 Javascript
webpack项目调试以及独立打包配置文件的方法
Feb 28 Javascript
vue3.0 CLI - 3.2 路由的初级使用教程
Sep 20 Javascript
async/await优雅的错误处理方法总结
Jan 30 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
PDO防注入原理分析以及注意事项
2015/02/25 PHP
TP5框架安全机制实例分析
2020/04/05 PHP
Javascript日期对象的dateAdd与dateDiff方法
2008/11/18 Javascript
js继承 Base类的源码解析
2008/12/30 Javascript
利用js获取服务器时间的两个简单方法
2010/01/08 Javascript
预加载css或javascript的js代码
2010/04/23 Javascript
jQuery EasyUI API 中文文档 - Form表单
2011/10/06 Javascript
快速解决jquery之get缓存问题的最简单方法介绍
2013/12/19 Javascript
JavaScript的21条基本知识点
2014/03/04 Javascript
5个可以帮你理解JavaScript核心闭包和作用域的小例子
2014/10/08 Javascript
Bootstrap零基础学习第一课之模板
2016/07/18 Javascript
JS实现购物车特效
2017/02/02 Javascript
JQuery实现文字无缝滚动效果示例代码(Marquee插件)
2017/03/07 Javascript
Vue2.0实现1.0的搜索过滤器功能实例代码
2017/03/20 Javascript
探秘vue-rx 2.0(推荐)
2018/09/21 Javascript
Electron + vue 打包桌面操作流程详解
2019/06/24 Javascript
js设计模式之代理模式及订阅发布模式实例详解
2019/08/15 Javascript
ES6基础之数组和对象的拓展实例详解
2019/08/22 Javascript
基于JavaScript实现贪吃蛇游戏
2020/03/16 Javascript
查找Vue中下标的操作(some和findindex)
2020/08/12 Javascript
在实例中重学JavaScript事件循环
2020/12/03 Javascript
让python同时兼容python2和python3的8个技巧分享
2014/07/11 Python
python操作mongodb根据_id查询数据的实现方法
2015/05/20 Python
利用matplotlib+numpy绘制多种绘图的方法实例
2017/05/03 Python
使用PyQt4 设置TextEdit背景的方法
2019/06/14 Python
利用CSS3实现折角效果实例源码
2016/09/28 HTML / CSS
html5的canvas元素使用方法介绍(画矩形、画折线、圆形)
2014/04/14 HTML / CSS
HTML5在手机端实现视频全屏展示方法
2020/11/23 HTML / CSS
澳大利亚汽车零部件、音响及配件超市:Automotive Superstore
2018/06/19 全球购物
美国马匹用品和马钉购物网站:State Line Tack
2018/08/05 全球购物
JAVA代码查错题
2014/10/10 面试题
入党积极分子自我鉴定
2014/02/18 职场文书
保险公司年会主持词
2014/03/22 职场文书
2015团员个人年度总结
2015/11/24 职场文书
Python 阶乘详解
2021/10/05 Python
不同品牌、不同型号对讲机如何互相通联
2022/02/18 无线电