iOS:XML解析(GDataXML)

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(@"-------------------");  
}

 

猜你喜欢

转载自sgm881218.iteye.com/blog/1859022