XML解析基础02

 
<?xml version="1.0" encoding="GBK"?>
 <!DOCTYPE Gis_Res SYSTEM "GIS_100.dtd">
 <Gis_Res Ver="1.0.0">
   <HDA Version="1.0.0">
     <SessionID>0510085934000001017405</SessionID>
     <Success Message="消息应答成功!" SuccessCode="ResponseIsTheRight"/>
   </HDA>
   <RGA>
     <ReverseGeocodedLocation>
       <Point>
         <pos isEncrypted="false" isOriginalCoord="false">103.0115111111111 29.979935555555556</pos>
       </Point>
       <Address countryCode="CN">
         <StreetAddress>
           <Street>建新路</Street>
         </StreetAddress>
         <Place type="CountrySubdivision">四川省</Place>
         <Place type="Municipality">雅安市</Place>
         <Place type="MunicipalitySubdivision">雨城区</Place>
         <Place type="AreaCode">511802</Place>
       </Address>
       <Properties>
         <RoadProperty name="roadclass" value="9"/>
         <RoadProperty name="name" value="建新路"/>
       </Properties>
     </ReverseGeocodedLocation>
   </RGA>
 </Gis_Res>
 
 
 
 
 private GisRspInfoModel analyseGisRsp(String responseXML)
   throws DocumentException {
  GisRspInfoModel model = new GisRspInfoModel();
  if (responseXML.indexOf("<!DOCTYPE") > 0) {
   int start = responseXML.indexOf("<!DOCTYPE");
   int end = responseXML.indexOf(".dtd\">");
   String s = responseXML.substring(start, end + 6);
   responseXML = responseXML.replaceFirst(s, "");
  }
  Document document = DocumentHelper.parseText(responseXML);
  Element root = document.getRootElement();
  Element rga = root.element("RGA");
  Element ReverseGeocodedLocation = rga
    .element("ReverseGeocodedLocation");
  Element address = ReverseGeocodedLocation.element("Address");
  Element Properties = ReverseGeocodedLocation.element("Properties");
  List<?> lip = Properties.elements("RoadProperty");
  for (int i = 0; i < lip.size(); i++) {
   Element userElement = (Element) lip.get(i);
   Attribute name = userElement.attribute("name");
   if ("roadclass".equals(name.getText())) {
    Attribute value = userElement.attribute("value");
    model.setRLevel(value.getText());
   }
  }
  List<?> list = address.elements("Place");
  for (int i = 0; i < list.size(); i++) {
   Element childElement = (Element) list.get(i);
   Attribute type = childElement.attribute("type");
   if ("AreaCode".equals(type.getText())) {
    model.setAreaCode(childElement.getText());
   }
  }

  return model;
 }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值