首页 > 编程 > Java > 正文

Java访问WebService返回XML数据的方法

2019-11-26 15:09:32
字体:
来源:转载
供稿:网友

本文实例讲述了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接口urlprivate 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());}}}

希望本文所述对大家的java程序设计有所帮助。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表