Xml轉Plist

 1.獲取本地xml文件

 NSString *filePath = [[NSBundle mainBundle] pathForResource:@"area" ofType:@"xml"];

 NSData *plistXML = [[NSData alloc] initWithContentsOfFile:filePath];

 

2.解析xml文件

 NSError *error;

 GDataXMLDocument *doc = [[GDataXMLDocument alloc] initWithData:plistXML error:&error];

 NSMutableArray*dataArr=[NSMutableArray array];

 NSArray *provinceArr= [doc nodesForXPath:@"/root/province" error:nil];

 //獲取屬性, 屬性使用GDataXMLElement表示

 for (int i=0; i<provinceArr.count; i++) {

    NSMutableDictionary*pDic=[NSMutableDictionary dictionary];

    //省或直轄市名

    GDataXMLElement *item=(GDataXMLElement*)[provinceArr objectAtIndex:i];

    GDataXMLNode*pStr=[item attributeForName:@"name"];

    [pDic setObject:pStr.stringValue forKey:@"state"];

    //        NSLog(@"dis_stringValue1=%@",pStr.stringValue);

        

    //城市名

    NSMutableArray*tempCityArr=[NSMutableArray array];

    NSArray*cityArray=[provinceArr[i] children];

    for (int j=0; j<cityArray.count; j++) {

       NSMutableDictionary*cityDic=[NSMutableDictionary dictionary];

            GDataXMLElement *cityItem=cityArray[j];

            GDataXMLNode*cityStr=[cityItem attributeForName:@"name"];

            NSLog(@"dis_stringValue2=%@",cityStr.stringValue);

            [cityDic setObject:cityStr.stringValue forKey:@"city"];

            

            //區名

            NSMutableArray*disTempArr=[NSMutableArray array];

            NSArray*discritArr=[cityArray[j] children];

            for (int k=0; k<discritArr.count; k++) {

               GDataXMLElement *disItem=discritArr[k];

                NSString*XMLString=[disItem XMLString];

                if (XMLString.length>0) {

                    GDataXMLNode*disStr=[disItem attributeForName:@"name"];

                    NSLog(@">>>>>disItem.attributes=%@",disStr.stringValue);

                    [disTempArr addObject:disStr.stringValue];

                }

            }

            [cityDic setObject:disTempArr forKey:@"areas"];

            [tempCityArr addObject:cityDic];

        }

        

        [pDic setObject:tempCityArr forKey:@"cities"];

        [dataArr addObject:pDic];

    }

    

//    NSLog(@">>>>>>>>>>>dataArr=%@",dataArr);

3.保存plist文件    

    NSArray *paths=NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask,YES);

    NSString *path=[paths objectAtIndex:0];

    NSString *filename=[path stringByAppendingPathComponent:@"area.plist"];

    NSLog(@">>>>>>>>>>>>>filename=%@",filename);

    [dataArr writeToFile:filename atomically:YES];

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章