KissXML 简易教程
文章来源?
http://ixhan.com/2010/03/tutorial-of-kissxml-iphone/
?
KissXML 是我觉得最简单方便的XML解析器了,更重要是很简单的支持Xpath
?
在项目中使用前先简单配置下.
?
OTHER_LDFLAGS = -lxml2
HEADER_SEARCH_PATHS = /usr/include/libxml2
如图
?
然后就可以使用KissXML了
<smil xmlns="http://www.w3.org/2000/SMIL20/CR/Language"><head></head><body><par dur="120000ms" ><text region="Text" src="att000.txt" /></par><par dur="120000ms" ><text region="Text" src="att010.txt" /></par><par dur="10000ms" ><img region="Image" src="att020.jpg"/></par><par dur="120000ms" ><text region="Text" src="att040.txt" /></par><par dur="10000ms" ><img region="Image" src="att120.gif"/></par></body></smil>
?
我们的目标是获取该xml媒体内容的 src 地址
//hack to remove xmlns => avoid xpath search not works xmlStr = [xmlStr stringByReplacingOccurrencesOfString:@"xmlns" withString:@"noNSxml"]; NSMutableArray* contents = [NSMutableArray array]; NSError* error = nil; DDXMLDocument* xmlDoc = [[DDXMLDocument alloc] initWithXMLString:xmlStr options:0 error:&error]; if (error) { NSLog(@"%@",[error localizedDescription]); return nil; } NSArray* resultNodes = nil; resultNodes = [xmlDoc nodesForXPath:@"//audio | //text | //image | //img" error:&error]; if (error) { NSLog(@"%@",[error localizedDescription]); return nil; } for(DDXMLElement* resultElement in resultNodes) { NSString* name = [resultElement name]; //audio , text or other media type NSString* fileName = [[resultElement attributeForName:@"src"] stringValue]; // 0.txt }
?
注意第一行,我把xmlns给删除了,(否则kissxml无法正常使用xpath,原因位置)
?
1 楼 xhanxhanxhan 2010-03-27 对了,转过来的原因是想看看 自己博客和javaeye的浏览量差距有多少哈哈