设为首页 加入收藏

TOP

Java访问WebService返回xml数据(一)
2014-11-24 03:08:11 来源: 作者: 【 】 浏览:5
Tags: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格式字符串并生成为本地文件*/


  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.getM

首页 上一页 1 2 下一页 尾页 1/2/2
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇Java数据库连接池lookup用法 下一篇Java 关于异常处理

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容:

·switch520最新的地址 (2025-12-24 19:19:41)
·微信聊天功能使用了 (2025-12-24 19:19:39)
·websocket和普通的so (2025-12-24 19:19:36)
·Python中文网 - 人生 (2025-12-24 18:49:47)
·【整整648集】这绝对 (2025-12-24 18:49:44)