iphone利用xml传递数据,展示载Table界面中

 

下面主要说一下xml的读取,iphone sdk已经给我们实现好了NSXMLParser,我们只需继承重写一些方法既可。

代码声明:

#import <Foundation/Foundation.h>

 

 

@interface XmlWelcome : NSXMLParser {

 

NSMutableArray * ones ;

NSMutableDictionary * one ;

int inOne;

int inTwo;

int Tag ;

}

@property (nonatomic ,retain ) NSMutableArray *ones;

@end

 

声明实现:

 

#import “XmlWelcome.h”


@implementation XmlWelcome


@synthesize ones;


// 开始一个dom 树分析

- (void )parserDidStartDocument:(NSXMLParser *)parser {

NSLog ( @”开始分析树结构);

ones = [ NSMutableArray arrayWithCapacity: 100 ];

 

}

// 开始节点 内的信息

- (void )parser:(NSXMLParser *)parser

didStartElement:(NSString *)elementName

namespaceURI:(NSString *)namespaceURI

qualifiedName:(NSString *)qualifiedName

attributes:(NSDictionary *)attributeDict

{

 

NSLog (@” 开始的节点是 :%@” ,elementName);

if ([elementName isEqual :@"title" ]) {

Tag =1 ;

}else if ([elementName isEqual :@"content" ]) {

Tag =2 ;

}

if ([elementName isEqual :@"item" ]) {

NSString *lang=[attributeDict objectForKey :@"lang" ];

if ([lang isEqual :@"zh" ]) {

inOne =1 ;

}

}

if (inOne ==1 &&[elementName isEqual :@"value" ]) {

inOne= 0 ;

inTwo= 1 ;

}

if ([elementName isEqual :@"image" ]) {

NSString *message=[attributeDict objectForKey :@"src" ];

[one setObject :message forKey :@"image" ];

}

}

// 结束节点

- (void )parser:(NSXMLParser *)parser

didEndElement:(NSString *)elementName

namespaceURI:(NSString *)namespaceURI

qualifiedName:(NSString *)qName

{

NSLog (@” 结束节点 :%@” ,elementName);

if ([elementName isEqual :@"pavilion" ]) {

Tag =0 ;

[ ones addObject: one ];

[ one release];

}

}

// 结束 dom

- (void )parserDidEndDocument:(NSXMLParser *)parser

{

 

NSLog ( @”结束 dom树分析);

}

 

- (void )parser:(NSXMLParser *)parser foundCharacters:(NSString *)string

{

NSLog ( @”节点的实际值: %@”,string);

if (inTwo ==1 ) {

inTwo= 0 ;

if (Tag ==1 ) {

one =[[ NSMutableDictionary alloc] initWithCapacity: 10 ];

[one setObject :string forKey :@"title" ];

}else if (Tag ==2 ) {

[one setObject :string

forKey : @"content"];

}

}

}

@end

里面有些算法比较烂,我也是初学着,大家共同讨论。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值