GDataXML解析XML

来源:互联网 发布:日本电影 知乎 编辑:程序博客网 时间:2024/05/16 11:42

GDXM下载地址http://download.csdn.net/detail/zjcxy3150/4660938

将GDataXMLNode.h,GDataXMLNode.m,xpath三个文件拖入项目中(是MRC如果你的项目是ARC需要关闭该.m文件,变为MRC(加-fno-objc-arc))


找到Search Paths段,在Header Search Paths设置值为:/usr/include/libxml2

找到Linking段,在Other Linker Flags设置中填上:-lxml2


//苹果官方请求

    NSURL *url=[NSURLURLWithString:@"http://www.raywenderlich.com/downloads/Party.xml"];

    NSURLRequest *request=[NSURLRequestrequestWithURL:url];

    [NSURLConnectionconnectionWithRequest:request delegate:self];


#pragma mark--

#pragma mark NSURLConnection代理方法

//管道建立成功

-(void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response{

    netData.length=0;

}

//接收数据

-(void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data{

    [netData appendData:data];

}

/*

 

 <Party>

     <Player>

         <Name>Butch</Name>

         <Level>1</Level>

         <Class>Fighter</Class>

     </Player>

     <Player>

         <Name>Shadow</Name>

         <Level>2</Level>

         <Class>Rogue</Class>

     </Player>

     <Player>

         <Name>Crak</Name>

         <Level>3</Level>

         <Class>Wizard</Class>

     </Player>

 </Party>

 */



//接收完成

-(void)connectionDidFinishLoading:(NSURLConnection *)connection{

    //解析xml

    GDataXMLDocument *doc=[[GDataXMLDocumentalloc]initWithData:netDataoptions:0error:Nil];

   // NSLog(@"doc is %@",doc.rootElement.XMLString);

    NSArray * partyMembers = [doc.rootElementnodesForXPath:@"//Party/Player" error:nil];

    //NSLog(@"name is %@",names);

    

    for (GDataXMLElement * partyMemberin partyMembers) {

        NSArray * names = [partyMembernodesForXPath:@"Name" error:nil];

        if (names.count >0) {

            GDataXMLElement * firstName = (GDataXMLElement *)[namesobjectAtIndex:0];

            NSLog(@"xml is %@",firstName.stringValue);

        }

        else

        {

            continue;

        }

    }

}


//管道建立失败

-(void)connection:(NSURLConnection *)connection didFailWithError:(NSError *)error{

    NSLog(@"%@",error);

}


0 0
原创粉丝点击