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中增加参数与Json转换代码
Nov 20 Javascript
拖动table标题实现改变td的大小(css+js代码)
Apr 16 Javascript
各种页面定时跳转(倒计时跳转)代码总结
Oct 24 Javascript
javascript实现des解密加密全过程
Apr 03 Javascript
使用iojs的jsdom库实现同步系统时间
Apr 20 Javascript
浅析javascript异步执行函数导致的变量变化问题解决思路
May 13 Javascript
js实现的光标位置工具函数示例
Oct 03 Javascript
JSON与XML的区别对比及案例应用
Nov 11 Javascript
js 点击a标签 获取a的自定义属性方法
Nov 21 Javascript
Vue内容分发slot(全面解析)
Aug 19 Javascript
浅谈在vue中使用mint-ui swipe遇到的问题
Sep 27 Javascript
elementui实现预览图片组件二次封装
Dec 29 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
php中heredoc与nowdoc介绍
2014/12/25 PHP
JQuery Dialog(JS 模态窗口,可拖拽的DIV)
2010/02/07 Javascript
Javascript表达式中连续的 &amp;&amp; 和 || 之赋值区别
2010/10/17 Javascript
一个非常全面的javascript URL解析函数和分段URL解析方法
2014/04/12 Javascript
jQuery中even选择器的定义和用法
2014/12/23 Javascript
jquery实现增加删除行的方法
2015/02/03 Javascript
jQuery插件jRumble实现网页元素抖动
2015/06/05 Javascript
jQuery实现延迟跳转的方法
2015/06/05 Javascript
jquery+php随机生成红包金额数量代码分享
2015/08/27 Javascript
Bootstrap开发实战之响应式轮播图
2016/06/02 Javascript
QRCode.js:基于JQuery的生成二维码JS库的使用
2017/06/23 jQuery
js制作简单的音乐播放器的示例代码
2017/08/28 Javascript
vue数字类型过滤器的示例代码
2017/09/07 Javascript
canvas+gif.js打造自己的数字雨头像的示例代码
2017/10/26 Javascript
webpack 开发和生产并行设置的方法
2018/11/08 Javascript
用WebStorm进行Angularjs 2开发(环境篇:Windows 10,Angular-cli方式)
2018/12/05 Javascript
Vue2.0实现组件之间数据交互和通信操作示例
2019/05/16 Javascript
JavaScript字符和ASCII实现互相转换
2020/06/03 Javascript
js实现带有动画的返回顶部
2020/08/09 Javascript
[00:23]魔方之谜解锁款式
2018/12/20 DOTA
深入理解python函数递归和生成器
2016/06/06 Python
教你用Python脚本快速为iOS10生成图标和截屏
2016/09/22 Python
python 中if else 语句的作用及示例代码
2018/03/05 Python
Pycharm在创建py文件时,自动添加文件头注释的实例
2018/05/07 Python
pyQt4实现俄罗斯方块游戏
2018/06/26 Python
window环境pip切换国内源(pip安装异常缓慢的问题)
2019/12/31 Python
python opencv实现信用卡的数字识别
2020/01/12 Python
python+selenium 脚本实现每天自动登记的思路详解
2020/03/11 Python
卸载tensorflow-cpu重装tensorflow-gpu操作
2020/06/23 Python
tensorflow图像裁剪进行数据增强操作
2020/06/30 Python
运动鞋中的劳斯莱斯:索康尼(SAUCONY)
2017/08/09 全球购物
英国排名第一的在线宠物用品商店:Monster Pet Supplies
2018/05/20 全球购物
电子专业毕业生自我鉴定
2014/01/22 职场文书
公司租车协议书
2015/01/29 职场文书
商场广播稿范文
2015/08/19 职场文书
为什么 Nginx 比 Apache 更牛逼
2021/03/31 Servers