`

iPhone HTTP获得XML并使用GDataXML解析

    博客分类:
  • ios
 
阅读更多

 

NSURL *url = [NSURL URLWithString:

  @"http://www.raywenderlich.com/downloads/Party.xml"];

 

NSMutableURLRequest* request = [NSMutableURLRequest new];    

[request setURL:url];    

[request setHTTPMethod:@"GET"]; 

 

NSHTTPURLResponse* response;    

NSData* data = [NSURLConnection sendSynchronousRequest:request    

returningResponse:&response 

error:nil];   

 

NSString* responseXMLResult = [[NSString allocinitWithData:data 

encoding: CFStringConvertEncodingToNSStringEncoding(kCFStringEncodingGB_18030_2000)];    

 

 

 

NSError *error;

GDataXMLDocument *doc = [[GDataXMLDocument allocinitWithXMLString: responseXMLResult

  options:0 error:&error];

 

 

if (doc == nil) { return; }

 

NSLog(@"LOG=%@", [[NSString alloc] initWithData:doc.XMLData encoding:NSUTF8StringEncoding]);

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

 

NSMutableString *resultString = [[NSMutableString alloc] initWithString:@"XML数据内容: \n"];

 

//NSArray *partyMembers = [doc.rootElement elementsForName:@"Player"];

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

for (GDataXMLElement *partyMember in partyMembers) {

 

NSString *_name;

NSString *_level;

NSString *_class;

 

// Name

//NSArray *names = [partyMember elementsForName:@"Name"];

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

if (names.count > 0) {

GDataXMLElement *firstName = (GDataXMLElement *) [names objectAtIndex:0];

_name = firstName.XMLString;

} else continue;

 

// Level

NSArray *levels = [partyMember elementsForName:@"Level"];

if (levels.count > 0) {

GDataXMLElement *firstLevel = (GDataXMLElement *) [levels objectAtIndex:0];

_level = firstLevel.stringValue;

} else continue;

 

// Class

NSArray *classes = [partyMember elementsForName:@"Class"];

if (classes.count > 0) {

GDataXMLElement *firstClass = (GDataXMLElement *) [classes objectAtIndex:0];

_class = firstClass.stringValue;

 

} else continue;

 

[resultString appendFormat:@"Name=%@",_name ];

[resultString appendFormat:@" Level=%@",_level ];

[resultString appendFormat:@" Class=%@\n",_class ];

 

 

}

 

 

//textView.text = [[NSString alloc] initWithData:doc.XMLData encoding:NSUTF8StringEncoding];

textView.text = resultString;

    [url release];

[doc release];

 

 

 

 

分享到:
评论

相关推荐

    iphone开发之xml解析

    本篇将详细讲解iPhone开发中的XML解析技术。 首先,XML解析是将XML文档转换为程序可以理解的数据结构的过程。在iOS开发中,有两种主要的XML解析方式:DOM(Document Object Model)和SAX(Simple API for XML)。 ...

    iPhone IOS XML解析源代码

    在这个"XMLPerformance"压缩包中,可能包含了两个工程或测试用例,分别演示了如何使用NSXMLParser和GDataXML解析XML,并进行了性能对比。通过运行这些代码,你可以直观地看到在相同XML数据集上,哪种解析方法的执行...

    iphone,xml多种解析方法

    在iPhone开发中,处理XML文件有多种解析库,包括GDataXML、TinyXML、KissXML、TouchXML和TBXML。这些解析器各有特点,适用于不同的场景。 1. **GDataXML** GDataXML是Google开源的一个Objective-C库,基于libxml2...

    iphone中xml的解析demo

    对于有经验的开发者,这个简单的XML解析示例可能过于基础,他们可能会考虑使用更高效的解析库,如GDataXML或者使用Swift的XMLParser,它们提供了更高级的功能,如异步解析和更好的性能。此外,还可以探索XPath或XML ...

    XMLParser iphone

    本文将详细介绍如何在iPhone应用中使用XMLParser来解析XML文件,并将解析后的数据存入数组以便后续访问。 首先,我们需要了解XMLParser的基本工作原理。XMLParser遵循SAX(Simple API for XML)模型,即事件驱动的...

    iOS开发中常见的解析XML的类库以及简要安装方法

    在iPhone开发中,XML的解析有很多选择,iOS SDK提供了NSXMLParser和libxml2两个类库,另外还有很多第三方类库可选,例如TBXML、TouchXML、KissXML、TinyXML和GDataXML。问题是应该选择哪一个呢? 解析 XML 通常有两...

    object-c 解析显示 MS PPT

    在Object-C中,我们可以使用XML解析库如NSXMLParser或者第三方库如GDataXML-ObjectiveC来处理这些XML数据。 **步骤1:读取PPT文件** 在iOS中,我们通常使用`NSData`对象来读取文件内容。例如,你可以使用以下代码...

    iPhone开发(淘宝客户端源代码)

    本篇文章将详细剖析一款开源的淘宝客户端源码,帮助开发者理解并掌握iPhone应用开发的核心技术,包括POST请求、XML解析以及MD5加密。这些知识点对于任何iOS开发者来说都是至关重要的基础。 首先,让我们关注POST...

Global site tag (gtag.js) - Google Analytics