iPhone HTTP获得XML并使用GDataXML解析
1. [代码][C/C++]代码
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 alloc] initWithData:data
encoding: CFStringConvertEncodingToNSStringEncoding(kCFStringEncodingGB_18030_2000)];
NSError *error;
GDataXMLDocument *doc = [[GDataXMLDocument alloc] initWithXMLString: 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;http://www.huiyi8.com/css3/
} 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;css3动画
} 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];#SinaEditor_Temp_FontName
iPhone HTTP获得XML并使用GDataXML解析的更多相关文章
- Objective-C ,ios,iphone开发基础:使用GDataXML解析XML文档,(libxml/tree.h not found 错误解决方案)
使用GDataXML解析XML文档 在IOS平台上进行XML文档的解析有很多种方法,在SDK里面有自带的解析方法,但是大多情况下都倾向于用第三方的库,原因是解析效率更高.使用上更方便 这里主要介绍一下 ...
- 使用GDataXML解析XML文档
转载自:http://blog.csdn.net/tangren03/article/details/7868246 在IOS平台上进行XML文档的解析有很多种方法,在SDK里面有自带的解析方法,但是 ...
- iOS高级编程之XML,JSON数据解析
解析的基本概念 所谓“解析”:从事先规定好的格式串中提取数据 解析的前提:提前约定好格式.数据提供方按照格式提供数据.数据获取方按照格式获取数据 iOS开发常见的解析:XML解析.JSON解析 一.X ...
- (转载)XML Tutorial for iOS: How To Read and Write XML Documents with GDataXML
In my recent post on How To Choose the Best XML Parser for Your iPhone Project, Saliom from the comm ...
- XML.03-DOM和SAX解析
body,td { font-family: calibri; font-size: 10pt } XML.03-DOM和SAX解析 XML的DOM解析 解析 处理 回写 XML的SAX解析 SAX和 ...
- 在Salesforce中处理Xml的生成与解析
在Salesforce中处理Xml的生成与解析 1): Generate Xml private String ConvertAccountToXmlInfo(Account acc){ Dom.Do ...
- 10分钟掌握XML、JSON及其解析
引言 NOKIA 有句著名的广告语:“科技以人为本”.任何技术都是为了满足人的生产生活需要而产生的.具体到小小的一个手机,里面蕴含的技术也是浩如烟海,是几千年来人类科技的结晶,单个人穷其一生也未必能掌 ...
- xml中俩种解析方式
两种解析方式 1.from xml.etree import ElementTree as ET 利用ElementTree模块下的xml方法可以把一个字符串类型的东西转换成Element类,从而利用 ...
- XML解析——Java中XML的四种解析方式
XML是一种通用的数据交换格式,它的平台无关性.语言无关性.系统无关性.给数据集成与交互带来了极大的方便.XML在不同的语言环境中解析方式都是一样的,只不过实现的语法不同而已. XML的解析方式分为四 ...
随机推荐
- java 字符串压缩长度并解压
package com.wy.data.emaildata.util; import org.apache.commons.io.FileUtils; import java.io.ByteArray ...
- Ant -----ant标签和自定义任务
随便记一下 Ant的用法吧.ant ,maven, gradle ,三个打包工具到齐了,Ant 常见标签解析,ant 自定义task . <?xml version="1.0" ...
- lfu-cache(需要O(1),所以挺难的)
https://leetcode.com/problems/lfu-cache/ 很难,看了下面的参考: https://discuss.leetcode.com/topic/69137/java-o ...
- linux内核I2C子系统学习(三)
写设备驱动: 四部曲: 构建i2c_driver 注册i2c_driver 构建i2c_client ( 第一种方法:注册字符设备驱动.第二种方法:通过板文件的i2c_board_info填充,然后注 ...
- SpringMVC:文件上传
MultipartFile attach HttpServletRequest re commons-io-2.0.jar (一定要用2.0以上的版本,否则没有copyInputStreamToFil ...
- javascript变量初始化位置
变量在之前<script type="text/javascript"></script>(或引用的js文件)中初始化,可以正常访问. 运行程序:弹出123 ...
- Python+Selenium框架-unittest执行脚本方法之addTest
本文开始介绍如何通过unittest来管理和执行测试用例,这一篇介绍unittest下addTest()方法来加载测试用例到测试套件中去.为了演示效果,我在前面文章的脚本基础上,新建了一个测试脚本,这 ...
- upstart man
man upstart nit(8) init(8) NAME init - Upstart process management daemon SYNOPSIS init [OPTION]... D ...
- kubernetes调度之资源配额示例
系列目录 前面说过,资源配额限制在指定名称空间下,对资源对象数量和特定类型的资源的限制,你可以在ResourceQuota中指定配额 创建名称空间 我们创建一个新的名称空间来演示 kubectl cr ...
- iOS 浅赋值、深复制、全然复制的知识点梳理验证(附加归档解档)
写于前: 在之前转载的一片文章中.文中对浅复制和深复制进行了具体的解读,同一时候还提到了深复制(one-level-deep copy).全然复制(true copy)的概念,并指出iOS开发中的深复 ...