赞
踩
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>
- #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];
- }
- }
- }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。