您的位置:首页 > 编程语言 > Java开发

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

2015-03-25 16:37 836 查看
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());

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐