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;
/**
* 通过webservices读取远程的xml文件
* @author Administrator
*
*/
public class DomXMLString {
private static String SERVICES_HOST = "www.webxml.com.cn";
private static String NETDATA_URL = "http://webservice.webxml.com.cn/WebServices/WeatherWS.asmx/getRegionProvince";
private static String LOCAL_PC_SAVEFILE_URL = "E:\\RemoteXml.xml";
private DomXMLString() {
}
public static void main(String[] args) throws Exception {
Document document = getProvinceCode(NETDATA_URL);
createXml(document, LOCAL_PC_SAVEFILE_URL);
}
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;
}
public static void createXml(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远程读取XML文件及SOAP协议应用 #### 核心知识点概述 本文将深入探讨如何在Java中处理XML文件,特别是聚焦于远程读取XML文件的方法与实践,并结合SOAP协议进行具体阐述。 #### 一、Java处理XML文件的基础...
例如,以下代码展示了如何读取一个XML文件: ```csharp using System.Xml; XmlDocument xmlDoc = new XmlDocument(); xmlDoc.Load("path_to_your_xml_file.xml"); ``` 读取XML节点值,可以使用`...
通过以上步骤,我们可以实现XMLHTTP协议对.NET Web Services的调用,从而在客户端进行远程数据提交操作。这样的技术在现代Web应用中非常常见,它可以极大地提升用户体验,提供流畅、实时的交互。在"WebXmlHttpDemo...
这个主题可能讲解了如何在编程语言中处理XML,比如在.NET框架中使用XML DOM(Document Object Model)、XML序列化、LINQ to XML等技术来读取和写入XML文件。DOM允许程序以树形结构处理XML,而XML序列化则可以将对象...
XML可以作为Web服务的数据交换格式,通过SOAP(Simple Object Access Protocol)协议实现远程调用。ASP.NET Web Services允许开发者创建XML Web服务,这些服务可以被其他应用程序跨平台调用。另外,ASP.NET MVC和ASP...
在Delphi中,利用HTTP和SOAP协议,开发者可以创建和调用远程XML Web Services,实现跨平台的数据交换。这部分将涵盖WS Import和WS Client的使用,以及如何处理Web Services的安全性问题。 最后,书中会涉及XML在...
通过学习《Web Services in 24 Hours》,读者不仅可以快速入门Web服务的基础知识,还能深入了解其核心技术,并通过实际案例加深理解。这对于希望快速掌握Web服务开发的技术人员来说是非常有价值的资源。 #### 九、...
它通过以下几个方面帮助解决Web Services面临的挑战: - **开放JMS**:提供与JMS兼容的API,支持与其他系统的集成。 - **通用连接性**:通过JCA(Java Connector Architecture)实现与其他企业信息系统(如ERP、CRM...
XML(eXtensible Markup Language...通过《XML高级编程》的学习,读者可以深入了解XML的各个方面,并掌握如何在实际项目中应用这些技术,无论是构建Web服务、数据交换,还是处理复杂的XML文档,都将变得更加得心应手。
1. XML读写:包含读取XML文件到内存并进行修改,然后保存回文件的示例。 2. XPath查询:演示如何使用XPath表达式选取XML文档中的特定节点。 3. XSLT转换:展示如何使用XSLT将XML文档转换为另一种格式,如HTML。 4. ...
2. SAX解析:SAX是一种事件驱动的解析器,它逐行读取XML文件并触发相应的事件,如开始元素、结束元素等。SAX解析器在内存使用上比DOM更高效,适合处理大型XML文档。 3. StAX解析:StAX提供了一种流式解析XML的方式...
- **XML在.NET框架中的应用**:.NET框架提供了强大的工具和支持,使得开发人员可以轻松地创建、读取和处理XML文档。例如,System.Xml命名空间包含了用于处理XML数据的各种类和接口。 #### 二、Web服务的概念与特性 ...
“中间层就用SQL自带的工具‘在IIS中配置SQL XML支持’实现”,这部分是指SQL Server可以通过Internet Information Services (IIS) 提供XML Web服务。通过在IIS上配置SQLXML,可以创建一个Web服务,该服务接收XML...
比如,系统可能会有一个模块负责从XML文件中读取新订单,另一个模块处理订单后更新XML库存状态,还有可能涉及到使用XML Web Services与其他系统进行远程通信。 在实际开发中,考虑到性能和效率,开发者可能还会利用...
这些实例将涵盖各个层次,从基础的XML文件读写到高级的XML网络通信和数据绑定,全方位提升读者的Delphi XML开发能力。 总的来说,《Delphi XML 权威指南》全面覆盖了Delphi开发中与XML相关的各个方面,无论是初学者...
SAX则是一种事件驱动的解析方式,只读取文档一次,适合处理大型XML文件。 XML与XSLT(Extensible Stylesheet Language Transformations)结合,可以实现数据的格式转换。XSLT通过样式表将XML数据转化为HTML、PDF或...
- **SAX解析**:Simple API for XML(SAX)是一种基于事件驱动的解析模型,它逐行读取XML文件,当遇到元素开始、结束、属性等事件时触发回调函数。SAX解析器不保存整个文档,适合处理大型XML文件,但不支持随机访问...
在Web应用程序中,ADO.NET通常用于处理本地数据库操作,而XML Web服务则用于远程数据交互。两者结合的常见场景是: - **数据代理**:Web服务可以作为一个数据访问层,暴露数据库操作为Web方法。客户端应用通过调用...
此外,文档可能还会讨论XML在Delphi中的高级应用,如XML Web Services的创建和消费,以及如何利用XML进行数据持久化。 通过学习这本书或教程,开发者可以提升在Delphi环境下处理XML数据的能力,从而更好地构建跨...
- 使用IXMLDOMDocument的Load方法,可以加载本地或远程的XML文件。例如: ```delphi var Doc: IXMLDOMDocument; begin Doc := CoDOMDocument.Create; // 创建IXMLDOMDocument对象 Doc.Load('C:\path\to\your....