注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

云水禅心

淡若秋菊何妨瘦, 清到梅花不畏寒.

 
 
 

日志

 
 

iPhone libxml解析XML获得节点属性值(use libxml SAX parser getting XML attributes key & value )  

2011-09-07 10:40:39|  分类: iphone |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

static void startElementSAX(void *ctx, const xmlChar *localname, const xmlChar *prefix, const xmlChar *URI, 

                            int nb_namespaces, const xmlChar **namespaces, int nb_attributes, int nb_defaulted, const xmlChar **attributes) {

    //NSLog(@"localname %s ,  nb_attributes %d",localname,nb_attributes);

        for (int i = 0; i < nb_attributes; i++) {

        NSString *key = [[NSString alloc] initWithCString:(char*)attributes[0] encoding:NSUTF8StringEncoding];

        NSString *value = [[NSString alloc] initWithCString:(char*)attributes[3] length:attributes[4] - attributes[3]]; 

        NSLog(@"key: %@   ===value:  %@", key, value);

        [key release];

        [value release];

       attributes += 5;

    } 

    }

}


同android和java一样,iphone解析xml也有2大类:SAX和DOM

 

1、SAX解析方式有以下2种:libxml2和NSXMLParser

 

一般是使用libxml2的SAX解析器呢,还是使用NSXMLParser能,我们通过下面的SDK中附属的例子XMLPerformance来做个测试。

相同的XML文档由网络下载,然后解析,比较的结果如下 :

下载用时解析用时合计
NSXMLParser1.419s5.525s7.134s
libxml22.520s2.247s2.646s

可以看到,libxml2比NSXMLParser快得多。这与它们处理的方式有些关系,NSXMLParser中调用SAX API的时候,参数是作为字符串传递的,需要先转换为NSString或者是NSDictionary对象,并且它不像libxml2那样是一边下载一边解析,需要整个文件下载完了才开始解析。所以说建议一般使用libxml2。

2、DOM解析有以下种方式:Google Data APIs , TouchXML , KissXML

说明XML,就得说说WEB应用种的几种基于XML协定的通讯方式:SOAP、WSDL、XML-RPC

  评论这张
 
阅读(1954)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018