栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

java 解析xml文件

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

java 解析xml文件

1.**首先先将xml文件放入java工程中。
我放入的是resources文件夹中。
2.xml结构:本次解析的是全国省市xml文件,这种不会变的数据一般不用储存数据库中。

	
		
			
			
				北京市
				110000
				
					
					
						北京市
						110000
						
						
							东城区110101
							西城区110102
							朝阳区110105
							丰台区110106
							石景山区110107
							海淀区110108
							门头沟区110109
							房山区110111
							通州区110112
							顺义区110113
							昌平区110114
							大兴区110115
							怀柔区110116
							平谷区110117
							密云区110118
							延庆区110119
						
					
				
			
		
	

我这里只解析到省跟市,区县没有用到
java代码

public List getProvinceInfo(String code) throws documentException {
        SAXReader reader = new SAXReader();
        InputStream in = this.getClass().getResourceAsStream("/CityData.xml");
        document doc = reader.read(in);
        Element element = doc.getRootElement();//所有xml标签对象
        Element element1;
        Element element2;//所有省级标签对象
        Element element3;
        Element element4;//城市标签对象
        List provinceInfoList = new ArrayList<>();//省级数据集合
        Iterator jzProvince = element.elementIterator("JzProvinceList");//获取父级标签集合
        while (jzProvince.hasNext()) {
            element1 = (Element) jzProvince.next();
            //获取所有省级标签集合 遍历
            Iterator jzProvince1 = element1.elementIterator("jzProvince");
            while (jzProvince1.hasNext()) {
                element2 = (Element) jzProvince1.next();
                ProvinceInfo provinceInfo = new ProvinceInfo();
                String codeT = element2.elementText("code");
                //获取该省的城市
                if (StringUtils.isNotBlank(code)) {
                    if (codeT.equals(code)) {
                        element3 = element2.element("jzCityList");//城市父级标签
                        Iterator jzCity = element3.elementIterator("jzCity");//城市标签集合
                        while (jzCity.hasNext()) {
                            element4 = (Element) jzCity.next();
                            provinceInfo = new ProvinceInfo();
                            provinceInfo.setText(element4.elementText("text"));
                            provinceInfo.setCode(element4.elementText("code"));
                            provinceInfoList.add(provinceInfo);
                        }
                    }
                } else {
                    provinceInfo.setText(element2.elementText("text"));
                    provinceInfo.setCode(codeT);
                    provinceInfoList.add(provinceInfo);
                }
            }
        }
        return provinceInfoList;
    }

我使用的document 方法,这种方式看似里面的结构复杂,但是只要理清层级关系,还是比较好理解的。而且解释xml结构改变,这种方式修改起来也方便。
仅限自己记录。

转载请注明:文章转载自 www.mshxw.com
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号