Android Plist文件解析

1.在GitHub上下载android-plist-parser(点击打开链接

2. 解析主要代码如下:

private void parsePListObject(PListObject pListObject) {
		if (pListObject instanceof Dict) {
			Dict dict = (Dict) pListObject;
			parseDict(dict);
		}else if ( pListObject instanceof Array) {
			Array array = (Array) pListObject;
			parseArray(array);
		}else if (pListObject instanceof com.longevitysoft.android.xml.plist.domain.Date) {
			Date date = (Date) pListObject;
			parseDate(date);
		}else if (pListObject instanceof com.longevitysoft.android.xml.plist.domain.String) {
			com.longevitysoft.android.xml.plist.domain.String myString = (com.longevitysoft.android.xml.plist.domain.String) pListObject;
			System.out.println("String====" + myString.getValue());
			sb.append(  myString.getValue() + "\n");
		}else if (pListObject instanceof com.longevitysoft.android.xml.plist.domain.Integer) {
			com.longevitysoft.android.xml.plist.domain.Integer myInteger = (com.longevitysoft.android.xml.plist.domain.Integer) pListObject;
			System.out.println("Integer====" + myInteger.getValue());
			sb.append( myInteger.getValue() + "\n");
		}else if (pListObject instanceof com.longevitysoft.android.xml.plist.domain.Real) {
			Real myReal = (Real) pListObject;
			System.out.println("Real====" + myReal.getValue());
			sb.append(  myReal.getValue() + "\n");
		}else if (pListObject instanceof com.longevitysoft.android.xml.plist.domain.False) {
			False myFalse = (False) pListObject;
			System.out.println("False====" + myFalse.getValue());
			sb.append( myFalse.getValue() + "\n");
		}else if (pListObject instanceof com.longevitysoft.android.xml.plist.domain.True) {
			True myTrue = (True) pListObject;
			System.out.println("True====" + myTrue.getValue());
			sb.append(  myTrue.getValue() + "\n");
		}else if (pListObject instanceof com.longevitysoft.android.xml.plist.domain.Data) {
			Data data = (Data) pListObject;
			System.out.println("Data===="+data.getValue());
			sb.append(data.getValue() + "\n");
		}

	}

	private void parseDate(Date date) {
		java.util.Date value = date.getValue();
		SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
		String format = sdf.format(value);
		System.out.println("Date===="+format);
		sb.append(format + "\n");
	}

	/**
	 * 解析Array类型
	 * @param noteArray
	 */
	private void parseArray(Array noteArray) {
		for(int k=0;k<noteArray.size();k++) {
			PListObject pListObject = noteArray.get(k);
			parsePListObject(pListObject);
		}
	}

	/**
	 * 解析Dict类型
	 * @param dict
	 */
	private void parseDict(Dict dict) {
		Map<String,PListObject> notes = dict.getConfigMap();
		Set<String> keySet = notes.keySet();
		Iterator<String> iterator = keySet.iterator();
		while(iterator.hasNext()){
			String tempKey = iterator.next();
			PListObject pListObject = notes.get(tempKey);
			sb.append(tempKey + " : ");//文件中的节点名称
			parsePListObject(pListObject);
		}
	}
//调用代码如下:
				PListXMLParser parser = new PListXMLParser(); // 基于SAX的实现
				PListXMLHandler handler = new PListXMLHandler();
				parser.setHandler(handler);
				try {
					// waiter.plist是你要解析的文件,该文件需放在assets文件夹下
					parser.parse(getAssets().open("waiter.plist")); 
				} catch (IllegalStateException e) {
					e.printStackTrace();
				} catch (IOException e) {
					e.printStackTrace();
				}

				PList actualPList = ((PListXMLHandler) parser.getHandler()).getPlist();
				PListObject rootElement = actualPList.getRootElement();
				parsePListObject(rootElement);


 
 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值