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去掉字符串里的所有空格
Feb 08 Javascript
Node.js的包详细介绍
Jan 14 Javascript
html的DOM中Event对象onblur事件用法实例
Jan 21 Javascript
JavaScript几种数组去掉重复值的方法推荐
Apr 12 Javascript
微信支付 JS API支付接口详解
Jul 11 Javascript
JQuery为元素添加样式的实现方法
Jul 20 Javascript
JS判断输入字符串长度实例代码(汉字算两个字符,字母数字算一个)
Aug 02 Javascript
详解js中Array的方法及技巧
Sep 12 Javascript
vue+express+jwt持久化登录的方法
Jun 14 Javascript
原生js+canvas实现下雪效果
Aug 02 Javascript
基于react项目打包css引用路径错误解决方案
Oct 28 Javascript
JavaScript canvas实现流星特效
May 20 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 伪静态隐藏传递参数名的四种方法
2010/02/22 PHP
php二维数组排序方法(array_multisort usort)
2013/12/25 PHP
PHP return语句的另一个作用
2014/07/30 PHP
Yii1.1中通过Sql查询进行的分页操作方法
2017/03/16 PHP
在Laravel的Model层做数据缓存的实现
2019/09/26 PHP
javaScript - 如何引入js代码
2021/03/09 Javascript
javascript 获取图片颜色
2009/04/05 Javascript
在次封装easyui-Dialog插件实现代码
2010/11/14 Javascript
关于javascript中的typeof和instanceof介绍
2012/12/04 Javascript
IE6下opacity与JQuery的奇妙结合
2013/03/01 Javascript
使用jquery hover事件实现表格的隔行换色功能示例
2013/09/03 Javascript
js实现select组件的选择输入过滤代码
2014/10/14 Javascript
jQuery中[attribute]选择器用法实例
2014/12/31 Javascript
Javascript函数的参数
2015/07/16 Javascript
javascript实现鼠标移到Image上方时显示文字效果的方法
2015/08/07 Javascript
浅谈使用MVC模式进行JavaScript程序开发
2015/11/10 Javascript
关于session和cookie的简单理解
2016/06/08 Javascript
基于Vue.js实现tab滑块效果
2017/07/23 Javascript
Bootstrap实现翻页效果
2017/11/27 Javascript
详解Angular-ui-BootStrap组件的解释以及使用
2018/07/13 Javascript
Node.js命令行/批处理中如何更改Linux用户密码浅析
2018/07/22 Javascript
js如何获取图片url的Blob值并预览示例代码
2019/03/07 Javascript
jsonp实现百度下拉框功能的方法分析
2019/05/10 Javascript
微信小程序开发搜索功能实现(前端+后端+数据库)
2020/03/04 Javascript
Angular处理未可知异常错误的方法详解
2021/01/17 Javascript
[58:42]DOTA2上海特级锦标赛C组败者赛 Newbee VS Archon第一局
2016/02/27 DOTA
使用Python的Django框架结合jQuery实现AJAX购物车页面
2016/04/11 Python
python机器学习实战之最近邻kNN分类器
2017/12/20 Python
python for 循环获取index索引的方法
2019/02/01 Python
详解FireFox下Canvas使用图像合成绘制SVG的Bug
2019/07/10 HTML / CSS
称象教学反思
2014/02/03 职场文书
学雷锋宣传标语
2014/06/25 职场文书
事业单位人员的自我评价范文
2014/09/21 职场文书
我们的节日重阳节活动总结
2015/03/24 职场文书
浅析MongoDB之安全认证
2021/06/26 MongoDB
mysql通过group by分组取最大时间对应数据的两种有效方法
2022/09/23 MySQL