中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

IOS如何解析XML文件

發布時間:2021-09-17 14:55:03 來源:億速云 閱讀:111 作者:小新 欄目:編程語言

這篇文章給大家分享的是有關IOS如何解析XML文件 的內容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。

這里使用NSXMLParser來解析,這個是apple自帶的xml解析庫

在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文件 ”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,讓大家可以學到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

昂仁县| 偃师市| 双城市| 黑龙江省| 阿鲁科尔沁旗| 介休市| 拉萨市| 法库县| 蓝田县| 上栗县| 伊吾县| 嘉兴市| 泸州市| 康保县| 金坛市| 东山县| 年辖:市辖区| 东乡县| 南丹县| 永州市| 贵港市| 上思县| 蕉岭县| 廉江市| 金溪县| 北辰区| 柯坪县| 彭泽县| 丰镇市| 三穗县| 阳东县| 大洼县| 桃园市| 常德市| 山东| 韶山市| 榕江县| 翁牛特旗| 新密市| 博乐市| 芮城县|