android解析plist文件

plist,即property list,是苹果手机软件开发中经常用到的存储文件格式,其实质就是XML文件,但是它遵循一定的格式。比如包含一些指定的元素,如plist,array,string,key等。苹果提供了解析该类文件的机制,可惜在安卓开发工具中却没有提供。经常遇到的情况是,在开发苹果和安卓手机软件的时候,要统一资源文件,这个时候,我们可以采用GitHub中提供的开源android-plist-parser解决方案。

比如我们要解析一个全国省市区的一个plist文件:





	0
	
		北京市
		
			0
			
				北京市
				
					东城区
					西城区
					朝阳区
					丰台区
					石景山区
					海淀区
					门头沟区
					房山区
					通州区
					顺义区
					昌平区
					大兴区
					怀柔区
					平谷区
					密云县
					延庆县
				
			
		
	
        ...
        ...
        ...


那么如何在android中解析呢?


一:在GitHub上下载android-plist-parser

https://github.com/tenaciousRas/android-plist-parser


二:解压下载的包,并导入android项目的类路径里。


三:解析该文件,并将解析信息打印在控制台。(因为该文件不算太小,因此在新线程中运行,防止主线程卡死)

new Thread(new Runnable() {
		@Override
		public void run() {
			PListXMLParser parser = new PListXMLParser();                // 基于SAX的实现
			PListXMLHandler handler = new PListXMLHandler();
			parser.setHandler(handler);
			
			try {
				parser.parse(getAssets().open("area.plist"));        // area.plist是你要解析的文件,该文件需放在assets文件夹下
			} catch (IllegalStateException e) {
				e.printStackTrace();
			} catch (IOException e) {
				e.printStackTrace();
			}
			
			PList actualPList = ((PListXMLHandler) parser.getHandler()).getPlist();
			Dict root = (Dict) actualPList.getRootElement();

			Map provinceCities = root.getConfigMap();
					
			for(int i=0; i province = provinceRoot.getConfigMap();
				
				String provinceName = province.keySet().iterator().next();
				System.out.println("省份为:" + provinceName);						// 打印省份
				
				Dict cityRoot = (Dict) province.get(provinceName);
				
				Map cities = cityRoot.getConfigMap();
				
				for(int j=0;j


area.plist放在我的资源里,需要的可以在这里下载。


你可能感兴趣的:(Java,android,android,iphone,plist)