標籤:
<?xml version="1.0" encoding="utf-8"?><resources> <Users> <User name="jason" age="12" location="Beijing"/> <User name="peter" age="18" location="Shanghai"/> </Users></resources>
/** * (從XML設定檔擷取第三方模組的屬性) * @param fragmentActivity activity * @param xmlID xml檔案的ID * @return List<User> * @throws XmlPullParserException * @throws IOException */ public static List<User> getUsersFromXML(FragmentActivity fragmentActivity, int xmlID) throws XmlPullParserException, IOException { XmlResourceParser xmlParser = fragmentActivity.getResources().getXml(xmlID); List<User> users = new ArrayList<User>(); int eventType = xmlParser.getEventType(); //不是檔案結尾就繼續解析 while (eventType != XmlResourceParser.END_DOCUMENT) { switch (eventType) { //檔案的內容的起始標籤開始,注意這裡的起始標籤是ThirdPartyUsers.xml檔案 //裡面<ThirdPartyUsers>標籤下面的第一個標籤ThirdPartyUser case XmlResourceParser.START_TAG: String tagName = xmlParser.getName(); if (tagName.endsWith("ThirdPartyUser")) { User user = new User(); user.user = xmlParser.getAttributeValue(null, "name"); user.age = xmlParser.getAttributeValue(null, "age"); user.location = xmlParser.getAttributeValue(null, "location"); users.add(user) ; } break; case XmlResourceParser.END_TAG: break; case XmlResourceParser.TEXT: break; default: break; } eventType= xmlParser.next() ; } xmlParser.close() ; return users; }
Android自訂xml解析