首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > Web前端 >

java访问WebService回到xml数据生成为本地文件实例

2012-10-09 
java访问WebService返回xml数据生成为本地文件实例import java.io.IOExceptionimport java.io.InputStrea

java访问WebService返回xml数据生成为本地文件实例

import java.io.IOException;import java.io.InputStream;import java.net.MalformedURLException;import java.net.URL;import java.net.URLConnection;import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.PrintWriter; import org.w3c.dom.Document;import org.w3c.dom.DOMException;import org.xml.sax.SAXException; import javax.xml.parsers.DocumentBuilder;import javax.xml.parsers.DocumentBuilderFactory;import javax.xml.parsers.ParserConfigurationException;import javax.xml.transform.OutputKeys; import javax.xml.transform.Transformer; import javax.xml.transform.TransformerConfigurationException; import javax.xml.transform.TransformerException; import javax.xml.transform.TransformerFactory; import javax.xml.transform.dom.DOMSource; import javax.xml.transform.stream.StreamResult; /*** * @author xuechong * src   http://eric-619.iteye.com/blog/692838 * 6/11/2010 16:58 * DomXMLString.java * 概述:纯java方式访问远程WebService接口返回的xml格式的数据保存在本地 */public class DomXMLString{private static String SERVICES_HOST = "www.webxml.com.cn";//远程WebService接口url    private static String NETDATA_URL = "http://webservice.webxml.com.cn/WebServices/WeatherWS.asmx/getRegionProvince";    //访问远程WebService接口返回的xml格式的数据保存在本地的绝对路径    private static String LOCAL_PC_SAVEFILE_URL = "E:dataTest/netDataToLocalFile.xml";        private DomXMLString(){}        public static void main(String[] args) throws Exception{    Document document = getProvinceCode(NETDATA_URL);    helloOK(document, LOCAL_PC_SAVEFILE_URL);    }        /*返回一个Document对象*/    public static Document getProvinceCode(String netXMLDataURL){        Document document = null;        DocumentBuilderFactory documentBF = DocumentBuilderFactory.newInstance();        documentBF.setNamespaceAware(true);        try{DocumentBuilder documentB = documentBF.newDocumentBuilder();InputStream inputStream = getSoapInputStream(netXMLDataURL);    //具体webService相关document = documentB.parse(inputStream);inputStream.close();}catch(DOMException e){e.printStackTrace();return null;}catch(ParserConfigurationException e){e.printStackTrace();return null;}catch (SAXException e){e.printStackTrace();return null;}catch(IOException e){e.printStackTrace();return null;}return document;    }        /*返回InputStream对象*/    public static InputStream getSoapInputStream(String url){        InputStream inputStream = null;        try{URL urlObj = new URL(url);URLConnection urlConn = urlObj.openConnection();urlConn.setRequestProperty("Host", SERVICES_HOST);    //具体webService相关urlConn.connect();inputStream = urlConn.getInputStream();}catch(MalformedURLException e){e.printStackTrace();}catch(IOException e){e.printStackTrace();}        return inputStream;    }        /*访问远程(WebService)xml数据后返回的xml格式字符串并生成为本地文件*/    public static void helloOK(Document document, String savaFileURL){    TransformerFactory transF = TransformerFactory.newInstance();    try{     Transformer transformer = transF.newTransformer();     DOMSource source = new DOMSource(document);     transformer.setOutputProperty(OutputKeys.ENCODING, "UTF-8");     transformer.setOutputProperty(OutputKeys.INDENT, "YES");     PrintWriter pw = new PrintWriter(new FileOutputStream(savaFileURL));     StreamResult result = new StreamResult(pw);     transformer.transform(source, result);    System.out.println("生成xml文件成功!");     }catch(TransformerConfigurationException e){     System.out.println(e.getMessage());     }catch(IllegalArgumentException e){     System.out.println(e.getMessage());     }catch(FileNotFoundException e){     System.out.println(e.getMessage());     }catch(TransformerException e){    System.out.println(e.getMessage());     }     }    }

热点排行