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控制div及网页相关属性的代码
Dec 19 Javascript
用C/C++来实现 Node.js 的模块(一)
Sep 24 Javascript
JS实现动画兼容性的transition和transform实例分析
Dec 13 Javascript
vue使用Axios做ajax请求详解
Jun 07 Javascript
jQuery回调方法使用示例
Jun 26 jQuery
Vue中的混入的使用(vue mixins)
Jun 01 Javascript
jQuery实现图片简单轮播功能示例
Aug 13 jQuery
浅谈Vue 性能优化之深挖数组
Dec 11 Javascript
记录vue项目中遇到的一点小问题
May 14 Javascript
浅谈Vue项目骨架屏注入实践
Aug 05 Javascript
Vue插件之滑动验证码
Sep 21 Javascript
Jquery属性的获取/设置及样式添加/删除操作技巧分析
Dec 23 jQuery
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
利用discuz实现PHP大文件上传应用实例代码
2008/11/14 PHP
PHP实现通过中文字符比率来判断垃圾评论的方法
2014/10/20 PHP
Laravel框架实现超简单的分页效果示例
2019/02/08 PHP
php5.6.x到php7.0.x特性小结
2019/08/17 PHP
Laravel自定义 封装便捷返回Json数据格式的引用方法
2019/09/29 PHP
JavaScript 入门·JavaScript 具有全范围的运算符
2007/10/01 Javascript
JavaScript 闭包深入理解(closure)
2009/05/27 Javascript
JavaScript实现自己的DOM选择器原理及代码
2013/03/04 Javascript
深入讲解AngularJS中的自定义指令的使用
2015/06/18 Javascript
JavaScript实现的背景自动变色代码
2015/10/17 Javascript
5种JavaScript脚本加载的方式
2017/01/16 Javascript
JS中Object对象的原型概念基础
2018/01/29 Javascript
tsconfig.json配置详解
2019/05/17 Javascript
JavaScript面试中常考的字符串操作方法大全(包含ES6)
2020/05/10 Javascript
微信小程序开发(二):页面跳转并传参操作示例
2020/06/01 Javascript
在Vue中使用antv的示例代码
2020/06/29 Javascript
[01:14:55]EG vs Spirit Supermajor 败者组 BO3 第三场 6.4
2018/06/05 DOTA
python脚本监控docker容器
2016/04/27 Python
对python中的os.getpid()和os.fork()函数详解
2019/08/08 Python
python安装dlib库报错问题及解决方法
2020/03/16 Python
Python如何读取、写入CSV数据
2020/07/28 Python
python hmac模块验证客户端的合法性
2020/11/07 Python
北美最大的零售退货翻新商:VIP Outlet
2019/11/21 全球购物
腾讯技术类校园招聘笔试试题
2014/05/06 面试题
护士专业推荐信
2013/11/02 职场文书
财政局长自荐信范文
2013/12/22 职场文书
建筑个人求职信范文
2014/01/25 职场文书
电力公司个人求职信范文
2014/02/04 职场文书
实习生求职自荐信
2014/02/07 职场文书
微笑面对生活演讲稿
2014/05/13 职场文书
岗位工作说明书
2014/07/29 职场文书
教师岗位职责范本
2015/04/02 职场文书
婚礼父母致辞
2015/07/28 职场文书
Python re.sub 反向引用的实现
2021/07/07 Python
RestTemplate如何通过HTTP Basic Auth认证示例说明
2022/03/17 Java/Android
ubuntu20.04虚拟机无法上网的问题及解决
2022/12/24 Servers