原文链接地址http://justaple.com/staples/public/c9f395aab9c311e08f6c40404112cf76/2011/8/5/08703525bf1311e08f6c40404112cf76/08703525bf1311e08f6c40404112cf76.htm?random=560.6270148546117
xml处理:
iPhone开发中,XML处理的方式与.net区别很大。个人感觉没有donot那么方便。苹果sdk中提供了NSXMLParser这个类库来解析xml。它需要一个url作为输入参数,通过NSXMLParser的委托方法来解析这个xml文件。NSXMLParser中主要有三个委托方法来解析XML:
1、didStartElement
2、didEndElement
3、foundCharacters
didStartElement:当解析器对象遇到xml的开始标记时,调用这个方法。
-
( void )parser:( NSXMLParser *)parser
didStartElement:( NSString *)
elementName namespaceURI:( NSString *)namespaceURI
qualifiedName:
|
( NSString *)qName
attributes:( NSDictionary *)attributeDict
|
didStartElement:
当解析器对象遇到xml的结束标记时,调用这个方法。
-( void )parser:( NSXMLParser *)parser
didEndElement:( NSString *)elementName
namespaceURI:( NSString *)namespaceURI
qualifiedName:( NSString *)qName
|
当解析器找到开始标记和结束标记之间的字符时,调用这个方法。
-
( void )parser:( NSXMLParser *)parser
foundCharacters:( NSString *)string
|
在iphone中显示网络上的图片:
通过一个url展示图片,分为三个步骤:
1、通过url创建一个NSURL对象
2、通过NSURL对象将图片数据加载到NSData对象中
3、将NSData对象赋给UIImage
URLWithString:@”www.cnblogs.com\images\sample.jpg”];
|
NSData *data
= [ NSData dataWithContentsOfURL:url];
|
UIImage
*image = [[UIImage alloc] intiWithData:data];
|
下面我们将图片的地址保存在服务器的一个xml文件中,通过解析xml,将图片的地址解析出来,然后展示。
创建一个view based application,命名为XMLWebImages
打开XMLWebImagesViewController.h。添加一个名为webScrollView 的UIScrollView类型的对象属性,并加上IBOutlet标识。
#import
<UIKit/UIKit.h> @interface XMLWebImageViewController : UIViewController
|
IBOutlet UIScrollView
*webScrollView;
|
@property ( nonatomic ,
retain) IBOutlet UIScrollView
* webScrollView;
|
创建一个命名为XMLWebView,并继承UIView的子类,这这个子类中添加UIImageView属性对象,命名为imageView,并加上IBOutlet标识。
@interface XMLWebView
: UIView
|
IBOutlet UIImageView
*imageView;
|
@property ( nonatomic ,
retain) IBOutlet UIImageView
*imageView;
|
创建一个.XIB文件,上面放置一个UIImageView,与上面的代码中的imageView建立关联。
创建一个实体类,这个类里面只有一个属性,用来存放图片的地址:
@interface XMLWebElement: NSObject
|
@property ( nonatomic ,
retain) UIImage * imgXML;
|
现在创建从服务器上获取xml,解析xml,展示图片的代码。打开XMLWebImagesViewController.h,创建一个NSXMLParser对象。
一个存放链接实体对象的数组xmlElements。一个临时的XMLWebElement 对象。
@interface XMLWebImagesViewController:
UIViewController
|
IBOutlet UIScrollView
*scrollview;
|
NSMutableString *currentNode;
|
NSMutableArray *xmlElements;
|
XMLWebElement
*tempElement;
|
在viewDidLoad 方法中为xmlElements 分配内存,初始化parser对象的xml地址:
xmlElements
= [[ NSMutableArray alloc]
init];
|
xmlParser
= [[ NSXMLParser alloc]
initWithContentsOfURL:
|
[xmlParser
setDelegate: self ];
|
服务器上的xml结构如下:解析xml的三个方法的代码如下:
<WebImages>
<image>
<URL>http://www.cnblogs.com/testimage1.jpg</URL>
</image>
<images>
<URL>http://www.cnblogs.com/testimage2.jpg</URL>
</images>
</WebImages>
解析xml的三个委托方法代码如下:
-
( void )xmlParser:( NSXMLParser *)xmlParser
didStartElement:
|
( NSString *)elementName
namespaceURI:( NSString *)namespaceURI
|
qualifiedName:( NSString *)qName
attributes:( NSDictionary *)attributeDict
|
if (![elementName
compare:@ "PictureInfo" ])
|
tempElement
= [[iCodeBlogXMLElement alloc] init];
|
else if (![elementName
compare:@ "imageURL" ])
|
currentAttribute
= [ NSMutableString string];
|
else if (![elementName
compare:@ "imageTitle" ])
|
currentAttribute
= [ NSMutableString string];
|
-
( void )parser:( NSXMLParser *)parser
didEndElement:( NSString *)
|
elementName
namespaceURI:( NSString *)namespaceURI
qualifiedName:( NSString *)qName
|
if (![elementName
compare:@ "PictureInfo" ])
|
[xmlElementObjects
addObject:tempElement];
|
else if (![elementName
compare:@ "imageURL" ])
|
NSURL *imageURL
= [ NSURL URLWithString:currentAttribute];
|
NSData *data
= [ NSData dataWithContentsOfURL:imageURL];
|
UIImage
*image = [[UIImage alloc] initWithData:data];
|
[tempElement
setImage:image];
|
else if (![elementName
compare:@ "imageTitle" ])
|
NSLog (@ "The
image title is %@" ,
currentAttribute);
|
[tempElement
setImageTitle:currentAttribute];
|
if (![elementName
compare:@ "Pictures" ])
|
-
( void )parser:( NSXMLParser *)parser
foundCharacters:( NSString *)string
|
if ( self .currentAttribute)
|
[ self .currentAttribute
appendString:string];
|
这样我们就将xml中的图片地址解析出来。然后我们下面代码展示图片:
NSURL *url
= [ NSURL URLWithString:urlString];
|
NSData *data
= [ NSData dataWithContentsOfURL:url];
|
UIImage
*image = [[UIImage alloc] intiWithData:data];
|
总结:本文通过代码讲述了iphone中xml解析以及网络上图片的展示。
分享到:
相关推荐
1.1.2 iphone网络规范4 1.1.3 iphone浏览器规范5 1.1.4 iphone的其他硬件特性5 1.2 iphone在行业中的比较6 1.2.1 物理比较6 1.2.2 具有竞争力的因特网浏览6 1.2.3 移动web标准7 1.2.4 其他创新7 1.3...
util实现Java图片水印添加功能,有添加图片水印和文字水印,可以设置水印位置,透明度、设置对线段锯齿状边缘处理、水印图片的路径,水印一般格式是gif,png,这种图片可以设置透明度、水印旋转等,可以参考代码...
J2ME优化压缩PNG文件 4个目标文件 内容索引:JAVA源码,综合应用,J2me游戏,PNG,图形处理 这是个J2ME控制台程序,它能剔除PNG文件中的非关键数据段,减少文件大小从而达到压缩图片的目的。而图片的质量并不会受到损失...
8.6 即时访问网络图片文件展示 8.7 手机气象局,实时卫星云图 8.8 通过网络播放mp3 8.9 设置远程下载音乐为手机铃声 8.10 远程下载桌面背景图案 8.11 将手机文件上传至网站服务器 8.12 移动博客发布器 8.13 移动RSS...
8.6 即时访问网络图片文件展示 8.7 手机气象局,实时卫星云图 8.8 通过网络播放mp3 8.9 设置远程下载音乐为手机铃声 8.10 远程下载桌面背景图案 8.11 将手机文件上传至网站服务器 8.12 移动博客发布器 8.13 移动RSS...
8.6 即时访问网络图片文件展示 8.7 手机气象局,实时卫星云图 8.8 通过网络播放mp3 8.9 设置远程下载音乐为手机铃声 8.10 远程下载桌面背景图案 8.11 将手机文件上传至网站服务器 8.12 移动博客发布器 8.13 移动RSS...
8.6 即时访问网络图片文件展示 8.7 手机气象局,实时卫星云图 8.8 通过网络播放mp3 8.9 设置远程下载音乐为手机铃声 8.10 远程下载桌面背景图案 8.11 将手机文件上传至网站服务器 8.12 移动博客发布器 8.13 移动RSS...
8.5 将网络图像网址放入Gallery中显示——URL.URLConnection.BaseAdapter 8.6 即时访问网络图文件展示——HttpURLConnection 8.7 手机气象局,实时卫星云图——HttpURLConnection与URLConnection和运行线程 8.8 通过...
8.5 将网络图像网址放入Gallery中显示——URL.URLConnection.BaseAdapter 8.6 即时访问网络图文件展示——HttpURLConnection 8.7 手机气象局,实时卫星云图——HttpURLConnection与URLConnection和运行线程 8.8 通过...
8.5 将网络图像网址放入Gallery中显示——URL.URLConnection.BaseAdapter 8.6 即时访问网络图文件展示——HttpURLConnection 8.7 手机气象局,实时卫星云图——HttpURLConnection与URLConnection和运行线程 8.8 通过...
余志龙,来自于手机制造业、电视媒体业、网络、电信产业、软件开发等领域,擅长嵌入式系统软件设计、J2ME游戏开发、Android开发,以及J2EE、JSP、Servlet、JavaBeans、PHP、C#等程序语言,熟悉面向对象技术与Eclipse...
8.5 将网络图像网址放入Gallery中显示——URL.URLConnection.BaseAdapter 8.6 即时访问网络图文件展示——HttpURLConnection 8.7 手机气象局,实时卫星云图——HttpURLConnection与URLConnection和运行线程 8.8 ...
8.5 将网络图像网址放入Gallery中显示——URL.URLConnection.BaseAdapter 8.6 即时访问网络图文件展示——HttpURLConnection 8.7 手机气象局,实时卫星云图——HttpURLConnection与URLConnection和运行线程 8.8 通过...
4.23 动态放大缩小ImageView里的图片——运用Matrix对象来缩放图文件 4.24 动态旋转图片——Bitmap与Matrix旋转ImageView 4.25 猜猜我在想什么——RadioButtonID 4.26 离开与关闭程序的弹出窗口——对话窗口上的ICON...
8.5 将网络图像网址放入Gallery中显示——URL.URLConnection.BaseAdapter 8.6 即时访问网络图文件展示——HttpURLConnection 8.7 手机气象局,实时卫星云图——HttpURLConnection与URLConnection和运行线程 8.8 通过...