IOS解析XML文件
这里使用NSXMLParser来解析,这个是apple自带的xml解析库,有个参考文章:http://www.php.cn/
在Xcode中加入一个xml文件:
<?xml version="1.0" encoding="ISO-8859-1"?> <root> <Shop shoplocation="beijing"> <id>001</id> <name>John</name> <url>Reminder</url> <info>Don't forget the meeting!</info> </Shop> <Shop shoplocation="dongcheng"> <id>002</id> <name>Jack</name> <url>cc</url> <info>how are you!</info> </Shop> <Shop shoplocation="haidian"> <id>003</id> <name>Tom</name> <url>bb</url> <info>I am fine!</info> </Shop> </root>
先读出来
NSString* path = [[NSBundle mainBundle] pathForResource:@"shop" ofType:@"xml"]; NSData *data = [[NSData alloc] initWithContentsOfFile:path options:(NSDataReadingMappedIfSafe) error:nil]; NSXMLParser *parser=[[NSXMLParser alloc] initWithData:tmpdata]; <span style="white-space:pre"> </span>[parser setDelegate:self]; [parser parse]; [parser release]; [self parseShopListFromResponse:data];
然后进行解析:
#pragma mark NSXMLParser delegate methods - (void)parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName namespaceURI:(NSString *) namespaceURI qualifiedName:(NSString *)qName attributes: (NSDictionary *)attributeDict { self.currentTag = elementName; if ([elementName isEqualToString:@"root"]) { self.tmpList = [[NSMutableArray alloc] init]; }else if ([elementName isEqualToString:@"Shop"]) { self.tmpShop = [[ShopData alloc] init]; NSArray* array = [attributeDict allKeys]; NSString* key = [array lastObject]; NSString*s = [attributeDict objectForKey:key]; self.tmpShop.info = s; } } -(void)parser:(NSXMLParser *)parser foundCharacters:(NSString *)string { if (self.currentString == nil) { self.currentString = [[NSMutableString alloc] initWithString:@""]; } if ([self.currentTag isEqualToString:@"name"] || [self.currentTag isEqualToString:@"id"] || [self.currentTag isEqualToString:@"url"] || [self.currentTag isEqualToString:@"info"]) { [self.currentString appendString:string]; } } -(void)parser:(NSXMLParser *)parser didEndElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName { if ([elementName isEqualToString:@"Shop"]) { [self.tmpList addObject:self.tmpShop]; [self.tmpShop release]; } if ([elementName isEqualToString:@"name"]) { self.tmpShop.name = [self.currentString copy]; [self.currentString setString:@""]; }else if ([elementName isEqualToString:@"id"]) { self.tmpShop._id = [self.currentString copy]; [self.currentString setString:@""]; }else if ([elementName isEqualToString:@"url"]) { self.tmpShop.url = [self.currentString copy]; [self.currentString setString:@""]; }else if ([elementName isEqualToString:@"info"]) { // self.tmpShop.info = [self.currentString copy]; // [self.currentString setString:@""]; } } - (void)parserDidStartDocument:(NSXMLParser *)parser { NSLog(@"开始解析xml文件"); } - (void)parserDidEndDocument:(NSXMLParser *)parser { [self.tableView reloadData]; NSLog(@"解析xml文件完成"); }
Shopdata的结构是:
@property (nonatomic,retain) NSString *name; @property (nonatomic,retain) NSString *url; @property (nonatomic,retain) NSString *_id; @property (nonatomic,retain) NSString *info; @property (nonatomic, retain) UIImage *appIcon;
以上就是IOS解析XML文件 的内容,更多相关内容请关注PHP中文网(www.php.cn)!

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

Video Face Swap
使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

热门话题

一年一度的WWDC已经结束,iOS18无疑是大家关注的一大焦点。目前有许多iPhone用户都抢先升级到了iOS18,但各种系统Bug让人难受。有博主表示,升级iOS18要谨慎,因为“Bug多到飞起”。博主表示,如果你的iPhone是主力机,建议不要升级iOS18,因为第一版本的Bug非常多。他还汇总了几个目前遇到的系统Bug:1、切换图标样式卡顿,导致图标不显示2、手电筒示宽动画经常丢失3、抖音App上传不了视频4、微信消息延迟10s左右推送5、电话偶尔打不出去,显示黑屏6、发热严

感谢网友吉茵珂丝、xxx_x、番茄炒西红柿、Terrence、香辣鸡腿堡的线索投递! 7月27日消息,苹果公司今天面向开发者,重新发布了iOS/iPadOS18Beta4更新,内部版本号从22A5316j升级到22A5316k,目前尚不清楚两个Beta4版本更新之间的区别。已经注册的开发者可以打开“设置”应用程序,进入“软件更新”部分,点击“测试版更新”选项,然后切换iOS18/iPadOS18开发者测试版设置来选择测试版。下载并安装测试版需要与开发者账户关联的AppleID。 7月24日报道,iO

7月31日消息,苹果公司昨日(7月30日)发布新闻稿,宣布推出新的开源Swift包(swift-homomorphic-encryption),用于在Swift编程语言中启用同态加密。注:同态加密(HomomorphicEncryption,HE)是指满足密文同态运算性质的加密算法,即数据经过同态加密之后,对密文进行特定的计算,得到的密文计算结果在进行对应的同态解密后的明文等同于对明文数据直接进行相同的计算,实现数据的“可算不可见”。同态加密技术可以计算加密数据,而且不会向操作过程泄露底层的未加

更新:Saunders Tech 已将教程上传到他的 YouTube 频道(下面嵌入视频),解释如何在欧盟境外的 iPad 上安装 Fortnite 和 Epic Games Store。然而,该过程不仅需要特定的 iO 测试版

6月1日消息,科技媒体AppleInsider今天发布博文,表示苹果将会在iOS18系统中,为“无边记”(Freeform)应用扩展推出“Scenes”的全新导航功能,并添加对象对齐的新选项。“无边记”应用简介先简要介绍下“无边记”应用,该应用于2022年推出,目前已经推出iOS、iPadOS、macOS15以及visionOS版本。苹果官方介绍如下:“无边记”是一款让灵感变为现实的绝佳工具。在支持几乎所有文件类型的灵活画布上勾勒项目草图、设计心情看板或者开始头脑风暴。借助iCloud,所有看板

【点此直达升级教程】5月8日消息,苹果今日向iPhone用户推送了iOS17.5RC更新(内部版本号:21F79),本次更新距离上次发布隔了70天。如何升级iOS/iPadOS/watchOS/macOS开发版和公测版?升级iOS/iPadOS17开发者预览版和公测版,可参考家友分享经验:经验贴一||经验贴二||经验贴三||经验贴四。从iOS/iPadOS16.4开发者预览版Beta1开始,需要注册苹果开发者计划,注册后打开系统【设置】【软件更新】即可看到升级选项。需注意,你的iPhone或iP

感谢网友香辣鸡腿堡、软媒新友2092483、手写的从前、DingHao、小星_14、窝窝头吃大口、非影Q、软媒新友2168428、Slades、Aaron212、快乐小刺猬、小伯爵、吃鱼的小奶猫的线索投递!【点此直达升级教程】7月24日消息,苹果今日向iPhone和iPad用户推送了iOS/iPadOS18开发者预览版Beta4更新(内部版本号:22A5316j),本次更新距离上次发布隔了15天。Carplay壁纸苹果为CarPlay添加了壁纸,涵盖浅色和深色两种模式,其壁纸风格类似于iPhon

实用分享.......随着苹果不断推出新的iOS版本,许多iPhone用户都面临着是否应该升级系统的选择。而最新iOS17.5Beta3的发布引起了广泛关注,尤其对于iPhone12用户而言,是否应该放弃现有的iOS16,转而尝试新的Beta版本,成为了一个值得探讨的问题。基于实际体验,分析iPhone12升级至iOS17.5Beta3的利弊,为广大果粉们提供参考。首先,我们需要明确的是,Beta版本通常是给开发者或愿意承担一定风险的早期体验者使用的。这意味着,相较于正式版,Beta版本可能包含
