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 相关文章推荐
Javascript实现带关闭按钮的网页漂浮广告代码
Jan 12 Javascript
多个jQuery版本共存的处理方案
Mar 17 Javascript
JavaScript模拟push
Mar 06 Javascript
javascript实现的猜数小游戏完整实例代码
May 10 Javascript
深入理解jQuery之防止冒泡事件
May 24 Javascript
使用jquery如何获取时间
Oct 13 Javascript
Web 开发中Ajax的Session 超时处理方法
Jan 19 Javascript
深入讲解xhr(XMLHttpRequest)/jsonp请求之abort
Jul 26 Javascript
vue实现模态框的通用写法推荐
Feb 26 Javascript
Vue3 中的数据侦测的实现
Oct 09 Javascript
Vue页面刷新记住页面状态的实现
Dec 27 Javascript
node.js中path路径模块的使用方法实例分析
Feb 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
php下使用iconv需要注意的问题
2010/11/20 PHP
php删除数组元素示例分享
2014/02/17 PHP
php实现无限级分类查询(递归、非递归)
2016/03/10 PHP
PHP实现随机发扑克牌
2020/04/22 PHP
再谈javascript图片预加载技术(详细演示)
2011/03/12 Javascript
javascript 45种缓动效果 非常酷
2011/06/28 Javascript
JavaScript列表框listbox全选和反选的实现方法
2015/03/18 Javascript
js实现ctrl+v粘贴上传图片(兼容chrome、firefox、ie11)
2016/03/09 Javascript
浅谈JavaScript对象的创建方式
2016/06/13 Javascript
Bootstrap基本插件学习笔记之模态对话框(16)
2016/12/08 Javascript
JS如何生成一个不重复的ID的函数
2016/12/25 Javascript
javascript 中的继承实例详解
2017/05/05 Javascript
JavaScript基础之流程控制语句的用法
2017/08/31 Javascript
angularjs下ng-repeat点击元素改变样式的实现方法
2018/09/12 Javascript
深入分析element ScrollBar滚动组件源码
2019/01/22 Javascript
vue实现axios图片上传功能
2019/08/20 Javascript
详解微信小程序工程化探索之webpack实战
2020/04/20 Javascript
[03:57]《不朽》——2015DOTA2国际邀请赛—中国军团出征主题曲MV
2015/07/15 DOTA
python3.3使用tkinter开发猜数字游戏示例
2014/03/14 Python
python继承和抽象类的实现方法
2015/01/14 Python
用Python进行一些简单的自然语言处理的教程
2015/03/31 Python
用Python实现服务器中只重载被修改的进程的方法
2015/04/30 Python
Python的装饰器模式与面向切面编程详解
2015/06/21 Python
浅谈Python中chr、unichr、ord字符函数之间的对比
2016/06/16 Python
python爬虫之快速对js内容进行破解
2019/07/09 Python
python过滤中英文标点符号的实例代码
2019/07/15 Python
numpy中的meshgrid函数的使用
2019/07/31 Python
利用CSS3的特性改变文本选中时的颜色
2013/09/11 HTML / CSS
Orvis官网:自1856年以来,优质服装、飞钓装备等
2018/12/17 全球购物
为什么要用EJB
2014/04/17 面试题
2014年中班下学期工作总结
2014/12/11 职场文书
大学生考试作弊被抓检讨书
2014/12/27 职场文书
校本课程教学计划
2015/01/19 职场文书
导游词之鲁迅祖居
2019/10/17 职场文书
python使用torch随机初始化参数
2022/03/22 Python
《游戏王:大师决斗》将推出新卡牌包4月4日上线
2022/03/31 其他游戏