iOS XML(解析)

XML分为两种解析方式

  • 第一种是 逐行解析方式 -- 使用系统解析器NSXMLParser

如下代码

- (IBAction)SAX解析:(id)sender {
    NSString *path = [[NSBundle mainBundle] pathForResource:@"stu_xml" ofType:@"xml"];
    NSData *data = [NSData dataWithContentsOfFile:path];
    NSXMLParser *XML = [[NSXMLParser alloc] initWithData:data];
    XML.delegate = self;
    [XML parse];
}

需要签订协议<NSXMLParserDelegate>
设置代理人
实现代理人方法
如下:
// 1.解析器开始

-(void)parserDidStartDocument:(NSXMLParser *)parser {
}

//解析器结束

- (void)parserDidEndDocument:(NSXMLParser *)parser {
}

// 2.节点头调用的方法,记录当前节点,方便后续赋值

- (void)parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName attributes:(NSDictionary<NSString *,NSString *> *)attributeDict{ 
}

// 节点的值
// 根据节点值决定值,没有值时对应的结果\n\t

- (void)parser:(NSXMLParser *)parser foundCharacters:(NSString *)string

// 4. 遇到节点尾 调用的方法 方法的回调
// 判断当前节点结束,

- (void)parser:(NSXMLParser *)parser didEndElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName

// 解释失败时调用这个方法

- (void)parser:(NSXMLParser *)parser parseErrorOccurred:(NSError *)parseError

XML概括

xml 全称是Extensible Markup Langage , 译作“可扩展标记语言”跟JSON一样, 也是常用的一种用于交互的数据格式一般也叫XML文档(XML Document)

GDataXML

要使用GDataXML, 先要对项目进行一些配置。
1>导入libxml2动态

QQ20160816-0.png

2>由于GDataXml是非ARC的, 因此得设置编译参数

20150825155545171.png

CMD + B 编译通过没有报错说明环境配置成功

GDataXML中常用的类
GDataXMLDocument: 代表整个XML文档
GDataXMLElement: 代表文档中的每个元素
使用attributeForName:方法可以获得属性值
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容