springmvc 解析url 返回的xml数据

@PostMapping(value = "")
	public  ReturnEntity xmlParse(
			@Param("ownerName")String ownerName,
			@Param("ownerNo")String ownerNo
			) throws Exception {
		String path="http://www.baidu.con";
		XmlParseUtil readXmlUtil = new XmlParseUtil();
		XmlParseUtil instance = readXmlUtil.getInstance();
		List<Poc> pocs =instance.xmlParse(path,ownerName,ownerNo);
		if (instance.error.length()>=1) {
			return new ReturnEntity(new ReturnBody(instance.error));
		}
		return new ReturnEntity(new ReturnBody(pocs));
	}



package com.jswhzl.lease.common.util;

import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.ArrayList;
import java.util.List;

import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;

import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
import org.xml.sax.SAXException;

import com.jswhzl.lease.entity.user.Poc;




/**读取xml指定标签内容
 * @author Administrator
 *
 */
public class XmlParseUtil {
	private static XmlParseUtil readXmlUtil = null;  
	public static String error=null;
	public static List<Poc>  pocs=null;
    public List<Poc> xmlParse(String path,String ownerName,String ownerNo) throws Exception{
	  String params = "ownerName="+ownerName+"&ownerNo="+ownerNo;
	  String encoding="UTF-8"; 
	  byte [] data = params.getBytes(encoding); 
	  URL url = new URL(path);  
      // No1.从网络中获取网页数据  
      HttpURLConnection conn = (HttpURLConnection) url.openConnection();
      conn.setRequestMethod("POST");
     // 设置文件类型
      conn.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
      conn.setRequestProperty("Content-Length",String.valueOf(data.length));
      conn.setConnectTimeout(5*1000); 
      conn.setDoInput(true);
      conn.setDoOutput(true);
      //设置超时时间
      
      conn.setReadTimeout(10*1000);
      conn.setConnectTimeout(10*1000);
      conn.setUseCaches(false);
      OutputStream outStream = conn.getOutputStream(); 
      outStream.write(data); 
      outStream.flush(); 
      outStream.close();
    
      if (conn.getResponseCode() != 200) throw new RuntimeException("请求url失败");  
      // No2.得到网络返回的输入流  
      InputStream inputStream = conn.getInputStream(); 
      
      //1.创建解析器工厂类:DocumentBuilderFactory  
      DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance(); 
      
      //创建DocumentBuilder对象进行创建Document对象
      DocumentBuilder documentBuilder = dbf.newDocumentBuilder();
      //创建一个Document对象
      Document document = documentBuilder.parse(inputStream);
      //获取根节点
      Element element = document.getDocumentElement();
      NodeList children = element.getElementsByTagName("houseOwnerInfo");
      if (children.getLength()<=0)throw new RuntimeException("查询结果不存在");  
		pocs=new ArrayList<Poc>();
		String diffgrId = "";
		if (children != null) {
			for (int i = 0; i < children.getLength(); i++) {
				Node serverGroup = children.item(i);
				diffgrId = serverGroup.getAttributes().getNamedItem("diffgr:id").getNodeValue();
				Poc	poc=new Poc();
				poc.setDiffgrId(diffgrId);
				NodeList childNodes = serverGroup.getChildNodes();
				for (int j = 0; j < childNodes.getLength(); j++) {
					Node grandson = childNodes.item(j);
					String tagName = grandson.getNodeName();
					String textContent = grandson.getTextContent();
					if(tagName.equals("ywzh")){
						poc.setYwzh(textContent);
					}
					if(tagName.equals("syqr")){
						poc.setSyqr(textContent);
					}
					if(tagName.equals("sfzh")){
						poc.setSfzh(textContent);
					}
					
					if(tagName.equals("QZBH")){
						poc.setQZBH(textContent);
					}
					if(tagName.equals("zl")){
						poc.setZl(textContent);
					}
					if(tagName.equals("FJZMJ")){
						poc.setFJZMJ(textContent);
					}
					if(tagName.equals("ZSYSBH")){
						poc.setZSYSBH(textContent);
					}
				}
				pocs.add(poc);
			}
		}
		 conn.disconnect();
		 readXmlUtil=null;
	return pocs;	
	  
  }


	

	/** 
     *  
     * @throws IOException 
	 * @throws SAXException 
	 * @throws ParserConfigurationException 
	 * @function:获得单例 
     */  
  public static XmlParseUtil getInstance() throws ParserConfigurationException, SAXException, IOException  
    {  
        if(readXmlUtil==null)  
        {  
            synchronized (XmlParseUtil.class)   
            {  
                if(readXmlUtil==null) {  
                	readXmlUtil = new XmlParseUtil();  
                }  
            }  
        }  
        return readXmlUtil;  
    }  

	
	
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值