TBXML 的简单使用

1.到github下载TBXML相关文件,主要使用的是TBXML.h TBXML.m 

2.将下载的那两个文件添加到项目中,如图:

   

3.如果你的项目是ARC型项目,则需要在 xxx.pch 文件末尾中添加一句 :“#define ARC_ENABLED”,否则会报错。

4.在需要解析xml文件的代码中添加上“TBXML.h”头文件,就可以利用TBXML框架来解析XML文件了。


我的xml文件内容:

<?xml version="1.0" encoding="UTF-8"?>
<Notes>
    <Note id="1">
        <CDate>2014-04-22</CDate>
        <Content>这是第一条信息</Content>
        <UserId>aboo</UserId>
    </Note>
    <Note id="2">
        <CDate>2014-03-22</CDate>
        <Content>二战时时期,九头蛇</Content>
        <UserId>jan</UserId>
    </Note>
    <Note id="3">
        <CDate>2014-04-30</CDate>
        <Content>神盾局特工,漫威漫画</Content>
        <UserId>sky</UserId>
    </Note>
    <Note id="4">
        <CDate>2014-04-03</CDate>
        <Content>美国队长2,超级士兵</Content>
        <UserId>罗杰斯</UserId>
    </Note>
    <Note id="5">
        <CDate>2014-03-01</CDate>
        <Content>钢铁侠3,史塔克工业</Content>
        <UserId>史塔克</UserId>
    </Note>
    <Note id="6">
        <CDate>1949-05-03</CDate>
        <Content>霍华德,史塔克父亲,佐拉博士</Content>
        <UserId>霍华德</UserId>
    </Note>
</Notes>

我的TBXML解析XML文件代码:

#pragma mark - 解析XML文件
-(void)parseNotesXML
{
    NSError *err = nil;
    TBXML *tbxml = [[TBXML alloc] initWithXMLFile:@"notes.xml" error:&err];
    TBXMLElement *root = tbxml.rootXMLElement;
    
    if (root) {
        // 根据子节点名称来获得子节点
        TBXMLElement *noteElement = [TBXML childElementNamed:@"Note" parentElement:root];
        
        while (noteElement != nil) {
            // 定义一个字典来存放数据
            NSMutableDictionary *noteDic = [[NSMutableDictionary alloc] init];
            
            // 读取Cdate标签里面的数据
            TBXMLElement *CDateElement = [TBXML childElementNamed:@"CDate" parentElement:noteElement];
            if (CDateElement != nil) {
                // 对于 <Tag>value</Tag> 型标签的xml读取里面的值
                NSString *cdate = [TBXML textForElement:CDateElement];
                // 将读取到的值存放进字典中
                [noteDic setValue:cdate forKey:@"CDate"];
            }
            
            // 读取Content标签里面的数据
            TBXMLElement *ContentElement = [TBXML childElementNamed:@"Content" parentElement:noteElement];
            if (ContentElement != nil) {
                NSString *content = [TBXML textForElement:ContentElement];
                [noteDic setValue:content forKey:@"Content"];
            }
            
            // 读取UserId标签里面的数据
            TBXMLElement *UserIDElement = [TBXML childElementNamed:@"UserId" parentElement:noteElement];
            if (UserIDElement != nil) {
                NSString *userId = [TBXML textForElement:UserIDElement];
                [noteDic setValue:userId forKey:@"UserId"];
            }
            
            // 对于 <Tag name="value"></Tag> 型标签的xml读取里面的值
            NSString *nId = [TBXML valueOfAttributeNamed:@"id" forElement:noteElement];
            [noteDic setValue:nId forKey:@"id"];
            
            // 将当期字典存放进可变数组中
            [_notes addObject:noteDic];
            
            // 寻找下一个节点
            noteElement = [TBXML nextSiblingNamed:@"Note" searchFromElement:noteElement];
        }
    }
}

感觉TBXML框架真不错!!!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值