注册 登录
主题 : [iPhone类代码]基于NSXMLParser封装的XML解析器
级别: 精灵王

状态: 连续签到 - [106天]
UID: 41480
精华: 0
发帖: 2310
可可豆: 3000 CB
威望: 3448 点
在线时间: 1537(时)
注册时间: 2010-12-07
最后登录: 2018-06-19
0 楼:  发表于: 2012-07-05 16:35    发自: Web Page
来源于 iPhone类代码 分类

[iPhone类代码]基于NSXMLParser封装的XML解析器    (在iOS代码库中浏览本帖)


测试代码如下:
NSString*xml = @"<root><name><child><childchild></childchild></child><child></child></name><name1></name1></root>";

//下面两个方案均可
//NSData *dataBaiDu = [xml dataUsingEncoding:NSUTF8StringEncoding];
//XMLNode *rootNode = [dataBaiDu xmlNode];
XMLNode *rootNode = [xml xmlNodeWithEncoding:NSUTF8StringEncoding];
NSLog(@"%@", rootNode);





NSLog打印的LOG如下:
<root> 
 <name>  
  <child>   
   <childchild></childchild>
  </child>  
  <child></child>
 </name> 
 <name1></name1>
</root> 




[attachment=43303]
[ 此帖被yjh4866在2013-07-25 13:43重新编辑 ]

附件: testXML.zip (50 K) 下载次数:154
------------------------------------------------------------------------
个人网站
CSDN个人博客
源码分享:AFNetworking精简版
级别: 精灵王

状态: 连续签到 - [106天]
UID: 41480
精华: 0
发帖: 2310
可可豆: 3000 CB
威望: 3448 点
在线时间: 1537(时)
注册时间: 2010-12-07
最后登录: 2018-06-19
1 楼:  发表于: 2012-07-05 16:36    发自: Web Page


那段代码是这样的,XMLNode *rootNode = [NSXMLParser parseToXMLNode:dataBaiDu];
------------------------------------------------------------------------
个人网站
CSDN个人博客
源码分享:AFNetworking精简版
级别: 侠客
状态: 连续签到 - [33天]
UID: 138343
精华: 0
发帖: 84
可可豆: 291 CB
威望: 236 点
在线时间: 383(时)
注册时间: 2012-04-24
最后登录: 2018-06-19
2 楼:  发表于: 2012-07-05 20:12    发自: Web Page
谢谢楼主分享!
级别: 新手上路
UID: 142169
精华: 0
发帖: 16
可可豆: 97 CB
威望: 97 点
在线时间: 4(时)
注册时间: 2012-05-10
最后登录: 2012-09-20
3 楼:  发表于: 2012-07-07 09:00    发自: Web Page
谢谢楼主,前面研究一个xmlresove,好像有问题,希望这个好用。
级别: 精灵王

状态: 连续签到 - [106天]
UID: 41480
精华: 0
发帖: 2310
可可豆: 3000 CB
威望: 3448 点
在线时间: 1537(时)
注册时间: 2010-12-07
最后登录: 2018-06-19
4 楼:  发表于: 2012-07-07 09:35    发自: Web Page
回 3楼(wyxriver001) 的帖子
有问题找我啊,
------------------------------------------------------------------------
个人网站
CSDN个人博客
源码分享:AFNetworking精简版
级别: 精灵王

状态: 连续签到 - [106天]
UID: 41480
精华: 0
发帖: 2310
可可豆: 3000 CB
威望: 3448 点
在线时间: 1537(时)
注册时间: 2010-12-07
最后登录: 2018-06-19
5 楼:  发表于: 2012-07-07 10:48    发自: Web Page
得到指定名称的结点列表函数:

- (NSArray *)getNodeListOf:(NSString *)nodeName from:(XMLNode *)rootNode
{
    NSMutableArray *marray = [[NSMutableArray alloc] initWithCapacity:5];
    NSMutableArray *marrayList = [NSMutableArray array];
    //
    [marray addObject:rootNode];
    while (marray.count > 0) {
        //取首结点
        XMLNode *node = [marray objectAtIndex:0];
        [node retain];
        [marray removeObjectAtIndex:0];
        //
        if ([node.nodeName isEqualToString:nodeName]) {
            [marrayList addObject:node];
        }
        //
        NSArray *arrayChild = node.children;
        for (XMLNode *childNode in arrayChild) {
            [marray addObject:childNode];
        }
        [node release];
    }
    [marray release];
    
    return marrayList;
}
------------------------------------------------------------------------
个人网站
CSDN个人博客
源码分享:AFNetworking精简版
级别: 新手上路
UID: 97732
精华: 0
发帖: 15
可可豆: 100 CB
威望: 60 点
在线时间: 173(时)
注册时间: 2011-10-13
最后登录: 2017-06-15
6 楼:  发表于: 2012-07-18 14:37    发自: Web Page
太感谢了。
级别: 新手上路
UID: 167713
精华: 0
发帖: 11
可可豆: 30 CB
威望: 30 点
在线时间: 11(时)
注册时间: 2012-09-20
最后登录: 2013-09-06
7 楼:  发表于: 2012-11-02 12:02    发自: Web Page
好像跟  ioscookbook上的有点像吧。

级别: 精灵王

状态: 连续签到 - [106天]
UID: 41480
精华: 0
发帖: 2310
可可豆: 3000 CB
威望: 3448 点
在线时间: 1537(时)
注册时间: 2010-12-07
最后登录: 2018-06-19
8 楼:  发表于: 2013-02-19 16:13    发自: Web Page
回 7楼(hao_ji) 的帖子
不知道,没见过ioscookbook,这段代码是我写的,没看过其他资料
------------------------------------------------------------------------
个人网站
CSDN个人博客
源码分享:AFNetworking精简版
级别: 新手上路
UID: 203787
精华: 0
发帖: 5
可可豆: 5 CB
威望: 5 点
在线时间: 6(时)
注册时间: 2013-01-15
最后登录: 2014-07-24
9 楼:  发表于: 2013-04-14 14:00    发自: Web Page
能读取本地的xml么?
描述
快速回复

关注本帖(如果有新回复会站内信通知您)

发帖、回帖都会得到可观的积分奖励。查看论坛积分规则

按"Ctrl+Enter"直接提交
    顶部