解析的內(nèi)容是事先給好的 citydict.plist:
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/將文件放在了assets文件夾,到時可以直接加載資源文件夾中citydict.plist文件。 try{ InputStream is = getResources().getAssets().open(Name); int len = is.available(); byte buffer[] = new byte[len]; is.read(buffer); xml = new String(buffer,"utf-8"); is.close(); } catch (Exception e){ e.printStackTrace(); }這樣將文件中的數(shù)據(jù)讀入了字符串 再對其進行pull解析,
private void parseXMLWithPull(String xmlData){ try{ XmlPullParserFactory factory = XmlPullParserFactory.newInstance(); XmlPullParser xmlPullParser = factory.newPullParser(); xmlPullParser.setInput(new StringReader(xmlData)); int eventType = xmlPullParser.getEventType(); ArrayList<String> address = new ArrayList<>(); // String string[] = new String[50]; String key = ""; int cout = 0; while(eventType!= XmlPullParser.END_DOCUMENT){ String nodeName = xmlPullParser.getName(); switch(eventType){ case XmlPullParser.START_TAG: if("string".equals(nodeName)){ // string[cout++] = xmlPullParser.nextText(); address.add(xmlPullParser.nextText()); cout++; // Log.d("string"+cout,string); }else if("key".equals(nodeName)){ key = xmlPullParser.nextText(); // Log.d("key",key); } break; case XmlPullParser.END_TAG: if("array".equals(nodeName)){ //Log.d("ssss",nodeName); Log.d("key",key); /* for(int i=0;i<cout;i++){ Log.d("string",string[i]); }*/ for(int i=0;i<cout;i++){ Log.d("string",address.get(i)); } address = new ArrayList<>(); cout = 0; } break; default: break; } eventType = xmlPullParser.next(); } }catch(Exception e){ e.printStackTrace(); } }將解析出的內(nèi)容都放進了list中,這就可以進行布局文件的調(diào)整了
新聞熱點
疑難解答