@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;
}
}