例如高德逆地理码api返回的xml:
<response>
<status>1</status>
<info>OK</info>
<infocode>10000</infocode>
<count>1</count>
<geocodes type="list">
<geocode>
<formatted_address>新疆维吾尔自治区乌鲁木齐市乌鲁木齐县</formatted_address>
<country>中国</country>
<province>新疆维吾尔自治区</province>
<citycode>0991</citycode>
<city>乌鲁木齐市</city>
<district>乌鲁木齐县</district>
<township/>
<neighborhood>
...
</neighborhood>
<building>
...
</building>
<adcode>650121</adcode>
<street/>
<number/>
<location>87.409417,43.471360</location>
<level>区县</level>
</geocode>
</geocodes>
</response>
解析代码:
CloseableHttpClient httpClient = HttpClients.createDefault();
// httpclient
HttpGet get = new HttpGet(uri);
CloseableHttpResponse response = null;
response = httpClient.execute(get);
HttpEntity entity = response.getEntity();
String responseString=EntityUtils.toString(entity);
// DOM4j解析高德接口返回的xml
Document doc=DocumentHelper.parseText(responseString);
Element root=doc.getRootElement();
Element geocodes=root.element("geocodes");
Element geocode=geocodes.element("geocode");
Element location=geocode.element("location");
String locationString=location.getText();
pom依赖:
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpclient</artifactId>
</dependency>
<dependency>
<groupId>org.dom4j</groupId>
<artifactId>dom4j</artifactId>
<version>2.1.3</version>
</dependency>
注意,必须解析到最子element才能getText()出文本