XML的解析方式
- SAX
- 大小文件都可以
- NSXMLParser
- DOM
- 最好是小文件
- GDataXML
NSXMLParser的用法
- 創(chuàng)建解析器來解析
// 創(chuàng)建XML解析器
NSXMLParser *parser = [[NSXMLParser alloc] initWithData:data];
// 設(shè)置代理
parser.delegate = self;
// 開始解析XML(parse方法是阻塞式的)
[parser parse];
- 代理對象要遵守NSXMLParserDelegate協(xié)議季惩,實(shí)現(xiàn)代理方法
/**
* 解析到某個元素的結(jié)尾(比如解析</videos>)
*/
- (void)parser:(NSXMLParser *)parser didEndElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName
{
}
/**
* 解析到某個元素的開頭(比如解析<videos>)
*/
- (void)parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName attributes:(NSDictionary *)attributeDict
{
}
/**
* 開始解析XML文檔
*/
- (void)parserDidStartDocument:(NSXMLParser *)parser
{
}
/**
* 解析完畢
*/
- (void)parserDidEndDocument:(NSXMLParser *)parser
{
}
GDataXML
- 配置
Snip20150713_336.png
Snip20150713_340.png
- 設(shè)置非ARC標(biāo)記
Snip20150713_335.png
- 具體用法
// 加載整個文檔
GDataXMLDocument *doc = [[GDataXMLDocument alloc] initWithData:data options:0 error:nil];
// 獲得根節(jié)點(diǎn)
doc.rootElement;
// 獲得其他節(jié)點(diǎn)
[element elementsForName:@"video"];
// 獲得節(jié)點(diǎn)的屬性
[element attributeForName:@"name"].stringValue;