Dom4J解析api返回的xml

例如高德逆地理码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()出文本

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值