android xml解析
public String func(String string, String name, String country) { if (TextUtils.isEmpty(string) || TextUtils.isEmpty(name)) { return Constant.EMPTY_STRING; } String curCountry = country; if (TextUtils.isEmpty(country)) { curCountry = "en"; } String result = Constant.EMPTY_STRING; ByteArrayInputStream inputStream = null; try { XmlPullParserFactory pullParserFactory = XmlPullParserFactory.newInstance(); XmlPullParser parser = pullParserFactory.newPullParser(); inputStream = new ByteArrayInputStream(string.getBytes(StandardCharsets.UTF_8)); parser.setInput(inputStream, null); int eventType = parser.getEventType(); while (eventType != XmlPullParser.END_DOCUMENT) { switch (eventType) { case XmlPullParser.START_TAG: String tagName = parser.getName(); if (!STRING_NODE.equals(tagName)) { break; } String nameVal = parser.getAttributeValue(null, "name"); String countryVal = parser.getAttributeValue(null, "lang"); if (!nameVal.equals(name) || !countryVal.equals(curCountry)) { break; } // 对于没有属性的标签,直接用nextText获取其文字 result = parser.nextText(); // int eventType2 = parser.next(); // 这两句等于上面一句 // result = parser.getText(); return result; case XmlPullParser.END_TAG: // 终止标签</XXX> break; default: break; } eventType = parser.next(); } } catch (XmlPullParserException | IOException e) { Log.w(TAG, "parse " + string + " failed"); } finally { closeSilently(inputStream); } return result; }