Java解析Xml文件—判断Xml文件的节点是否存在子节点_以及对节点下不同子节点的内容解析方式

XML文件

<HotelGeoList>

<HotelGeo Country="中国" ProvinceName="重庆" ProvinceId="0400" CityName="开县(重庆)" CityCode="0424">

<HotelGeo Country="中国" ProvinceName="重庆" ProvinceId="0400" CityName="梁平(重庆)" CityCode="0430">
<Districts>
<Location Id="0001" Name="梁平"/>
</Districts>
</HotelGeo>

<HotelGeo Country="中国" ProvinceName="重庆" ProvinceId="0400" CityName="南川(重庆)" CityCode="0411">
<Districts>
<Location Id="0001" Name="南川区"/>
</Districts>
<CommericalLocations>
<Location Id="041102" Name="金佛山"/>
<Location Id="041101" Name="南川城区"/>
</CommericalLocations>

</HotelGeo>

</HotelGeoList >

判断Xml文件中某一个节点是否存在子节点:
首先要获取到节点的document,
Element root = document.getRootElement();
Element HotelGeoList = root.element("HotelGeoList"); 
for(Iterator iteratorHotelGeo = HotelGeoList.elementIterator("HotelGeo");iteratorHotelGeo.hasNext();){  
   Element HotelGeo = (Element) iteratorHotelGeo.next();  
   Document d = HotelGeo.getDocument();
   if(d.selectNodes("//*").size()>0){
       System.out.println("存在子节点");
   }

节点下不统一子节点内容的解析

 Element District = HotelGeo.element("Districts"); 
     if(District!=null){  //判断是否存在district的子节点
   for(Iterator iteratorLocation  = District.elementIterator("Location");iteratorLocation .hasNext();){
      District district = new District();
      Element Locations = (Element) iteratorLocation.next();
      district.setDistrictName(Locations.attributeValue("Name"));
      district.setDistrictId(Locations.attributeValue("Id"));
      district.setCity(city);
      district = districtService.createDistrict(district);
      System.out.println("---------------"+district.getDistrictId()+"--"+district.getDistrictName());
    }
      }
               
  Element CommericalLocation = HotelGeo.element("CommericalLocations"); 
      if(CommericalLocation!=null){//判断是否存在CommericalLocation子节点
                 
        for(Iterator iteratorLocation  = CommericalLocation.elementIterator("Location");iteratorLocation .hasNext();){
            CommericalLocation commericalLocation = new CommericalLocation();
            Element Locations = (Element) iteratorLocation.next();
            commericalLocation.setCommericalLocationName(Locations.attributeValue("Name"));
            commericalLocation.setCommericalLocationId(Locations.attributeValue("Id"));
            commericalLocation.setCity(city);
            commericalLocation = commericalLocationService.createCommericalLocation(commericalLocation);
            System.out.println("---------------"+commericalLocation.getCommericalLocationId()+"-----"+commericalLocation.getCommericalLocationName());
        }
      }
  Element LandmarkLocation = HotelGeo.element("LandmarkLocations"); 
    if(LandmarkLocation!=null){//判断是否存在LandmarkLocation子节点
               
         for(Iterator iteratorLocation  = LandmarkLocation.elementIterator("Location");iteratorLocation .hasNext();){
            LandmarkLocation landmarkLocation = new LandmarkLocation();
            Element Locations = (Element) iteratorLocation.next();
            landmarkLocation.setLandmarkLocationName(Locations.attributeValue("Name"));
            landmarkLocation.setLandmarkLocationId(Locations.attributeValue("Id"));
            landmarkLocation.setCity(city);
            landmarkLocation = landmarkLocationService.createLandmarkLocation(landmarkLocation);
            System.out.println("---------------"+landmarkLocation.getLandmarkLocationId()+"---"+landmarkLocation.getLandmarkLocationName());
         }
    }

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值