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框架真不错!!!