Android --pull解析XML,获取省市区的例子



    
        
中正區
大同區
中山區
萬里區
金山區
板橋區
仁愛區
信義區
中正區

举个这样的例子,这是一个XML的部分数据,现在需要解析

**
 * 城市解析XML
 * Created by yangbin on 2019/4/1.
 */
public class CityXmlPraserUtils {

    public static List parserLocation(Context context) {
        List cityList = new ArrayList<>();
        try {
            InputStream inStream = context.getResources().openRawResource(R.raw.location);
            XmlPullParser pullParser = Xml.newPullParser();
            pullParser.setInput(inStream, "UTF-8");
            int event = pullParser.getEventType();// 觸發第一個事件
            cityList.add(new FirstEntity("0", "不限", "", "", ""));
            List districtList = new ArrayList<>();
            FirstEntity tempCity;
            while (event != XmlPullParser.END_DOCUMENT) {
                switch (event) {
                    case XmlPullParser.START_DOCUMENT:
                        break;
                    case XmlPullParser.START_TAG:
                        if ("region".equals(pullParser.getName())) {
                            String regionName = pullParser.getAttributeValue(0);
                            String regionId = pullParser.getAttributeValue(1);
                            String lat = pullParser.getAttributeValue(2);
                            String lng = pullParser.getAttributeValue(3);
                            String orderId = pullParser.getAttributeValue(4);
                            tempCity = new FirstEntity(regionId, regionName, lat, lng, orderId);
                            districtList = new ArrayList<>();
                            districtList.add(new SecondEntity("0", "不限", "", "", ""));
                            tempCity.setSecondEntityList(districtList);
                            cityList.add(tempCity);
                        }
                        if ("section".equals(pullParser.getName())) {
                            String sectionId = pullParser.getAttributeValue(0);
                            String lat = pullParser.getAttributeValue(1);
                            String lng = pullParser.getAttributeValue(2);
                            String orderId = pullParser.getAttributeValue(3);

                            String sectionName = pullParser.nextText();

                            SecondEntity district = new SecondEntity(sectionId, sectionName, lat, lng, orderId);
                            districtList.add(district);
                        }
                        break;
                    case XmlPullParser.END_TAG:
                        break;
                }
                event = pullParser.next();
            }
        } catch (Exception e) {
        }
        return cityList;
    }
}

 

最后的效果图Android --pull解析XML,获取省市区的例子_第1张图片

写这个帖子是记录下,解析这块,说实话,我居然忘记怎么解析了,还是后面百度别人的文章,跟看同事的代码,所以基础啊 不牢固

 

 

 

 

 

 

 

 

 

你可能感兴趣的:(JAVA,android)