@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; } }
springmvc 解析url 返回的xml数据
最新推荐文章于 2022-04-25 20:09:07 发布