`

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示例-XMLPerformance

    本示例"iPhone官方解析XML示例-XMLPerformance"是苹果官方提供的一个Demo,旨在帮助开发者了解如何在iPhone平台上高效地解析XML文档。 首先,让我们来看看XML的基本概念。XML是一种自描述性的语言,它的结构由一...

    iphone中xml的解析demo

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

    iphone开发xml解析

    ### iPhone开发中的XML解析详解 在移动应用开发领域,尤其是针对iPhone的应用开发中,XML(Extensible Markup Language)解析是一项关键技术。...希望本文能帮助开发者更好地理解并掌握iPhone开发中的XML解析技巧。

    iphone中XML解析例子

    本篇文章将深入探讨如何在iPhone应用中进行XML解析。 首先,我们需要了解在iOS中解析XML的两种主要方法:NSXMLParser和libxml2库。NSXMLParser是Apple提供的一种基于事件驱动的解析器,它会逐个处理XML文档的元素和...

    iPhone编程解析xml

    本教程将深入探讨如何在iPhone应用程序中解析XML文件,主要涉及的技术点包括Objective-C编程、网络连接以及NSXMLParser类的使用。 首先,我们要了解XML的基本结构。XML文档由元素、属性、文本内容等组成,通过层次...

    iphone开发XML解析

    本教程将重点介绍如何在iPhone应用中进行XML解析,使开发者能够理解并有效地处理XML数据。 首先,我们需要了解XML的基本概念。XML是一种标记语言,它的结构由元素(Elements)、属性(Attributes)、文本内容(Text...

    iPhone xml rss解析

    本示例主要探讨如何在iPhone应用中解析XML结构的RSS feed,以便将新闻标题展示在表格视图中。 首先,让我们了解XML的基本概念。XML是一种标记语言,用于描述数据的结构和内容。它使用自定义的标签来表示数据,使得...

    xml.zip_iphone访问webservice视频_xml_数据解析

    本教程将通过iPhone应用程序示例,讲解如何访问Web服务获取XML数据,并进行解析。以下是一些关键知识点: 1. **XML基础**: - XML是一种自描述性的语言,允许用户定义自己的标签来组织数据。 - XML文档由元素、...

    iphone 解析XML的demo

    3. **数据模型**: 在解析XML时,通常会创建一个或多个数据模型类来存储解析得到的数据。这有助于将原始XML数据转换为更有意义的对象,方便后续的业务逻辑处理。 4. **错误处理**: 解析过程中可能会遇到各种错误,如...

    iphone使用GDataXMLParser解析xml文件小结

    本文将深入探讨如何使用GDataXMLParser库在iPhone应用中解析XML文件。GDataXMLParser是Google提供的一款强大的XML解析器,它是Objective-C的实现,非常适合iOS平台。 首先,我们需要了解GDataXMLParser的基本概念。...

    iphone开发之xml解析流程小结

    本文将深入探讨iPhone开发中的XML解析流程,帮助开发者更好地理解和使用这一技术。 首先,我们要了解XML的基本概念。XML是一种自描述性的标记语言,它的结构清晰,易于人阅读,同时也方便机器解析。在iOS开发中,...

    goole的xml解析库

    使用这个库,开发者可以在iPhone应用中加载XML配置文件、解析服务器返回的XML数据,或者与使用XML格式的外部服务进行通信。 `COPYING.txt`文件通常包含开源库的许可信息,它定义了用户可以如何使用、修改和分发这个...

    iPhone 解析XML示例-KissXML

    接下来,我们将讨论如何在iPhone应用中使用KissXML进行XML解析: 1. **导入库**:首先,在项目中导入KissXML库,可以通过CocoaPods或手动添加库文件。 2. **创建XMLDocument**:使用`[[DDXMLDocument alloc] ...

    XMLParser iphone

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

    iPhone解析XML显示网络上的照片

    通过以上步骤,我们不仅了解了如何创建一个简单的XML文件作为数据源,还学会了如何使用iOS开发工具来构建一个能够解析并显示网络图片的应用程序。这对于初学者来说是一次很好的实践机会,有助于加深对iOS开发流程的...

    iPhone/iPad 开发: 解析本地/网络上的xml文件(实例建附件)

    本文将深入探讨如何在iPhone和iPad应用中处理XML文件,以"XMLDemo"为例,来讲解相关技术。 首先,XML(eXtensible Markup Language)是一种用于标记数据的语言,广泛应用在数据交换、配置文件等领域。它的结构清晰...

    GData xml解析库

    这个库为iOS和iPhone开发者提供了一种高效且易于使用的工具,使他们能够在应用程序中解析、操作和生成XML文档。GData XML库基于libxml2,这是一个广泛使用的C语言实现的XML解析库,它在性能和稳定性方面都有着出色的...

Global site tag (gtag.js) - Google Analytics