tbwshc

          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

            * 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格式字符串并生成為tb本地文件*/

            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());

            }

            }

            }

          posted on 2012-08-09 11:47 chen11-1 閱讀(715) 評論(0)  編輯  收藏


          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 江川县| 玉溪市| 甘洛县| 德惠市| 玉环县| 平顺县| 潮安县| 二连浩特市| 广南县| 竹北市| 民县| 田东县| 嘉峪关市| 二连浩特市| 剑河县| 奉节县| 杂多县| 彰化市| 琼结县| 平南县| 安阳县| 桦南县| 天祝| 麟游县| 大田县| 封开县| 鄄城县| 定州市| 南溪县| 四平市| 泸州市| 土默特右旗| 台南市| 廉江市| 海宁市| 兴安县| 邛崃市| 黄龙县| 萨嘎县| 视频| 铁岭市|