GDataXML是Google开发的一个XML解析库,轻便,特点使用非常简单,支持XPath。
GoogleCode地址:
https://code.google.com/p/gdata-objectivec-client/source/browse/trunk/Source/XMLSupport/
第一步,加入框架:libxml2.dylib
第二步,设置 Search Paths 中 Header Search Paths 为 /usr/include/libxml2
第三步,导入头文件:GDataXMLNode.h
<?xml version="1.0" encoding="utf-8"?> <Users> <User id="001"> <name>Ryan</name> <age>24</age> </User> <User id="002"> <name>Tang</name> <age>23</age> </User> </Users>
解析:
//获取工程目录的xml文件 NSString *filePath = [[NSBundle mainBundle] pathForResource:@"users" ofType:@"xml"]; NSData *xmlData = [[NSData alloc] initWithContentsOfFile:filePath]; //使用NSData对象初始化 GDataXMLDocument *doc = [[GDataXMLDocument alloc] initWithData:xmlData options:0 error:nil]; //获取根节点(Users) GDataXMLElement *rootElement = [doc rootElement]; //获取根节点下的节点(User) NSArray *users = [rootElement elementsForName:@"User"]; for (GDataXMLElement *user in users) { //User节点的id属性 NSString *userId = [[user attributeForName:@"id"] stringValue]; NSLog(@"User id is:%@",userId); //获取name节点的值 GDataXMLElement *nameElement = [[user elementsForName:@"name"] objectAtIndex:0]; NSString *name = [nameElement stringValue]; NSLog(@"User name is:%@",name); //获取age节点的值 GDataXMLElement *ageElement = [[user elementsForName:@"age"] objectAtIndex:0]; NSString *age = [ageElement stringValue]; NSLog(@"User age is:%@",age); NSLog(@"-------------------"); }