xml转plist

把以下的xml文件

<?xml version="1.0" encoding="utf-8"?>
<hotelCities>
<city>
<type>HOT</type>
<cityname>热门城市</cityname>
</city>
<city>
<type>HOT</type>
<cityname>北京</cityname>
<citycode>PEK</citycode>
<cityspell>beijing</cityspell>
</city>
<city>
<type>HOT</type>
<cityname>上海</cityname>
<citycode>SHA</citycode>
<cityspell>shanghai</cityspell>
</city>
<city>
<type>HOT</type>
<cityname>广州</cityname>
<citycode>CAN</citycode>
<cityspell>guangzhou</cityspell>
</city>
<city>
<type>A</type>
<cityname>A</cityname>
</city>
<city>
<type>A</type>
<cityname>阿坝州</cityname>
<citycode>ABA</citycode>
<cityspell>abazhou</cityspell>
</city>
<city>
<type>A</type>
<cityname>阿城</cityname>
<citycode>ACH</citycode>
<cityspell>acheng</cityspell>
</city>
...
</hotelCities>

转成以下plist文件

代码如下:

NSData *plistXML = [[NSFileManager defaultManager] contentsAtPath:[Nsstring stringWithFormat:@"%@/%@",[[NSBundle mainBundle] resourcePath],@"hotelCity.xml"]];

NSError *error;
GdataxMLDocument *doc = [[GdataxMLDocument alloc] initWithData:plistXML options:0 error:&error];
NSMutableDictionary *dict = [NSMutableDictionary dictionaryWithCapacity:350];

NSArray *type = [doc nodesForXPath:@"//hotelCities/city/type" error:nil];
NSArray *cityname = [doc nodesForXPath:@"//hotelCities/city/cityname" error:nil];
NSArray *citycode = [doc nodesForXPath:@"//hotelCities/city/citycode" error:nil];
NSArray *cityspell = [doc nodesForXPath:@"//hotelCities/city/cityspell" error:nil];

NSMutableArray *cityHot = [[NSMutableArray alloc] init];
NSMutableArray *cityA = [[NSMutableArray alloc] init];
NSMutableArray *cityB = [[NSMutableArray alloc] init];
NSMutableArray *cityC = [[NSMutableArray alloc] init];
NSMutableArray *cityD = [[NSMutableArray alloc] init];
NSMutableArray *cityE = [[NSMutableArray alloc] init];
NSMutableArray *cityF = [[NSMutableArray alloc] init];
NSMutableArray *cityG = [[NSMutableArray alloc] init];
NSMutableArray *cityH = [[NSMutableArray alloc] init];
NSMutableArray *cityI = [[NSMutableArray alloc] init];
NSMutableArray *cityJ = [[NSMutableArray alloc] init];
NSMutableArray *cityK = [[NSMutableArray alloc] init];
NSMutableArray *cityL = [[NSMutableArray alloc] init];
NSMutableArray *cityM = [[NSMutableArray alloc] init];
NSMutableArray *cityN = [[NSMutableArray alloc] init];
NSMutableArray *cityO = [[NSMutableArray alloc] init];
NSMutableArray *cityP = [[NSMutableArray alloc] init];
NSMutableArray *cityQ = [[NSMutableArray alloc] init];
NSMutableArray *cityR = [[NSMutableArray alloc] init];
NSMutableArray *cityS = [[NSMutableArray alloc] init];
NSMutableArray *cityT = [[NSMutableArray alloc] init];
NSMutableArray *cityU = [[NSMutableArray alloc] init];
NSMutableArray *cityV = [[NSMutableArray alloc] init];
NSMutableArray *cityW = [[NSMutableArray alloc] init];
NSMutableArray *cityX = [[NSMutableArray alloc] init];
NSMutableArray *cityY = [[NSMutableArray alloc] init];
NSMutableArray *cityZ = [[NSMutableArray alloc] init];


NSInteger num = [type count];
NSInteger titleCount = 0;
for (NSInteger idx = 0; idx < num; ++idx) {
Nsstring *typestring = [[type objectAtIndex:idx] stringValue];
Nsstring *cityName = [[cityname objectAtIndex:idx] stringValue];
if ([@"热门城市" isEqualToString:[[cityname objectAtIndex:idx] stringValue]]||
[@"A" isEqualToString:cityName]||
[@"B" isEqualToString:cityName]||
[@"C" isEqualToString:cityName]||
[@"D" isEqualToString:cityName]||
[@"E" isEqualToString:cityName]||
[@"F" isEqualToString:cityName]||
[@"G" isEqualToString:cityName]||
[@"H" isEqualToString:cityName]||
[@"I" isEqualToString:cityName]||
[@"J" isEqualToString:cityName]||
[@"K" isEqualToString:cityName]||
[@"L" isEqualToString:cityName]||
[@"M" isEqualToString:cityName]||
[@"N" isEqualToString:cityName]||
[@"O" isEqualToString:cityName]||
[@"P" isEqualToString:cityName]||
[@"Q" isEqualToString:cityName]||
[@"R" isEqualToString:cityName]||
[@"S" isEqualToString:cityName]||
[@"T" isEqualToString:cityName]||
[@"U" isEqualToString:cityName]||
[@"V" isEqualToString:cityName]||
[@"W" isEqualToString:cityName]||
[@"X" isEqualToString:cityName]||
[@"Y" isEqualToString:cityName]||
[@"Z" isEqualToString:cityName]) {
titleCount += 1;
}else {
Nsstring *citycodeString = [[citycode objectAtIndex:idx-titleCount] stringValue];
Nsstring *cityspellString = [[cityspell objectAtIndex:idx-titleCount] stringValue];

NSMutableArray *city = [[NSMutableArray alloc] init];
[city addobject:cityName];
[city addobject:citycodeString];
[city addobject:cityspellString];
if ([@"HOT" isEqualToString:typestring]) {
[cityHot addobject:city];
}else if ([@"A" isEqualToString:typestring]) {
[cityA addobject:city];
}else if ([@"B" isEqualToString:typestring]) {
[cityB addobject:city];
}else if ([@"C" isEqualToString:typestring]) {
[cityC addobject:city];
}else if ([@"D" isEqualToString:typestring]) {
[cityD addobject:city];
}else if ([@"E" isEqualToString:typestring]) {
[cityE addobject:city];
}else if ([@"F" isEqualToString:typestring]) {
[cityF addobject:city];
}else if ([@"G" isEqualToString:typestring]) {
[cityG addobject:city];
}else if ([@"H" isEqualToString:typestring]) {
[cityH addobject:city];
}else if ([@"I" isEqualToString:typestring]) {
[cityI addobject:city];
}else if ([@"J" isEqualToString:typestring]) {
[cityJ addobject:city];
}else if ([@"K" isEqualToString:typestring]) {
[cityK addobject:city];
}else if ([@"L" isEqualToString:typestring]) {
[cityL addobject:city];
}else if ([@"M" isEqualToString:typestring]) {
[cityM addobject:city];
}else if ([@"N" isEqualToString:typestring]) {
[cityN addobject:city];
}else if ([@"O" isEqualToString:typestring]) {
[cityO addobject:city];
}else if ([@"P" isEqualToString:typestring]) {
[cityP addobject:city];
}else if ([@"Q" isEqualToString:typestring]) {
[cityQ addobject:city];
}else if ([@"R" isEqualToString:typestring]) {
[cityR addobject:city];
}else if ([@"S" isEqualToString:typestring]) {
[cityS addobject:city];
}else if ([@"T" isEqualToString:typestring]) {
[cityT addobject:city];
}else if ([@"U" isEqualToString:typestring]) {
[cityU addobject:city];
}else if ([@"V" isEqualToString:typestring]) {
[cityV addobject:city];
}else if ([@"W" isEqualToString:typestring]) {
[cityW addobject:city];
}else if ([@"X" isEqualToString:typestring]) {
[cityX addobject:city];
}else if ([@"Y" isEqualToString:typestring]) {
[cityY addobject:city];
}else if ([@"Z" isEqualToString:typestring]) {
[cityZ addobject:city];
}
[city release];
}



//[dict setobject:[[value objectAtIndex:idx] stringValue] forKey:[[key objectAtIndex:idx] stringValue]];
//NSLog(@"%@:%@\n",[[value objectAtIndex:idx] stringValue],[[key objectAtIndex:idx] stringValue]);
}

[dict setobject:cityHot forKey:@"hot"];
[dict setobject:cityA forKey:@"A"];
[dict setobject:cityB forKey:@"B"];
[dict setobject:cityC forKey:@"C"];
[dict setobject:cityD forKey:@"D"];
[dict setobject:cityE forKey:@"E"];
[dict setobject:cityF forKey:@"F"];
[dict setobject:cityG forKey:@"G"];
[dict setobject:cityH forKey:@"H"];
[dict setobject:cityI forKey:@"I"];
[dict setobject:cityJ forKey:@"J"];
[dict setobject:cityK forKey:@"K"];
[dict setobject:cityL forKey:@"L"];
[dict setobject:cityM forKey:@"M"];
[dict setobject:cityN forKey:@"N"];
[dict setobject:cityO forKey:@"O"];
[dict setobject:cityP forKey:@"P"];
[dict setobject:cityQ forKey:@"Q"];
[dict setobject:cityR forKey:@"R"];
[dict setobject:cityS forKey:@"S"];
[dict setobject:cityT forKey:@"T"];
[dict setobject:cityU forKey:@"U"];
[dict setobject:cityV forKey:@"V"];
[dict setobject:cityW forKey:@"W"];
[dict setobject:cityX forKey:@"X"];
[dict setobject:cityY forKey:@"Y"];
[dict setobject:cityZ forKey:@"Z"];

[dict writetoFile:[Nsstring stringWithFormat:@"/%@",@"city.plist"] atomically:YES];

相关文章

php输出xml格式字符串
J2ME Mobile 3D入门教程系列文章之一
XML轻松学习手册
XML入门的常见问题(一)
XML入门的常见问题(三)
XML轻松学习手册(2)XML概念