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());
}
}
<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());
}
}
相关文章推荐
- Java解析Xml文件—判断Xml文件的节点是否存在子节点_以及对节点下不同子节点的内容解析方式
- 判断XML文件是否存在,不存在就创建一个XMl文件,存在就在里面添加一条数据
- Java之xml文件解析一(DOM方式解析xml文件)
- 判断本地系统目录下是否存在XML文件,如果不存在就创建一个XMl文件,若存在就在里面执行添加数据
- Java之xml文件解析三(JDOM方式解析xml文件)
- 判断本地系统目录下是否存在XML文件,如果不存在就创建一个XMl文件,若存在就在里面执行添加数据
- c#创建xml读取xml方法并判断文件目录以及文件是否存在
- Java乔晓松-使用SAX,DOM,pull解析XML文件以及pull解析生成xml文件
- 【JAVA基础】0012--------判断String类型的XML中是否存在某一个节点
- Java之xml文件解析四(DOM4J方式解析xml文件)
- Java用String 截取方式解析xml文件、处理大xml文件
- Java之xml文件解析二(SAX方式解析xml文件)
- Dom解析是将xml文件全部载入,组装成一颗dom树,然后通过节点以及节点之间的关系来解析xml文件,下面结合这个xml文件来进行dom解析。
- Java判断文件目录以及文件是否存在
- C# 用Linq的方式实现对Xml文件的基本操作(创建xml文件、增删改查xml文件节点信息)
- C# 用Linq的方式实现对Xml文件的基本操作(创建xml文件、增删改查xml文件节点信息)zz
- Linux下父进程通过管道发送文件名给子进程,子进程获取文件名后首先判断文件是否存在,不存在,通过管道返回错误信息,存在,将文件内容返回给父进程
- JAVA 文件上传后台判断浏览器的类型以及JDK1.5和1.6处理的不同
- java判断远程服务器上的文件是否存在的方法
- java对xml全面解析,增,删,改,以及将java对象重新编组为xml文件