在做一般的XML数据交换过程中,我更乐意传递XML字符串,而不是格式化的XML Document。这就涉及到XML字符串和Xml Document的转换问题,说白了这是个很简单的问题,本文就各种XML解析器分别列举如下,以方便自己今后查阅。
一、使用最原始的javax.xml.parsers,标准的jdk api
// 字符串转XML
String xmlStr = \"......\";
StringReader sr = new StringReader(xmlStr);
InputSource is = new InputSource(sr);
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
DocumentBuilder builder=factory.newDocumentBuilder();
Document doc = builder.parse(is);
//XML转字符串
TransformerFactory tf = TransformerFactory.newInstance();
Transformer t = tf.newTransformer();
t.setOutputProperty(\"encoding\",\"GB23121\");//解决中文问题,试过用GBK不行
ByteArrayOutputStream bos = new ByteArrayOutputStream();
t.transform(new DOMSource(doc), new StreamResult(bos));
String xmlStr = bos.toString();
这里的XML DOCUMENT为org.w3c.dom.Document
二、使用dom4j后程序变得更简单
// 字符串转XML
String xmlStr = \"......\";
Document document = DocumentHelper.parseText(xmlStr);
// XML转字符串
Document document = ...;
String text = document.asXML();
这里的XML DOCUMENT为org.dom4j.Document
三、使用JDOM
JDOM的处理方式和第一种方法处理非常类似
//字符串转XML
String xmlStr = \".....\";
StringReader sr = new StringReader(xmlStr);
InputSource is = new InputSource(sr);
Document doc = (new SAXBuilder()).build(is);
//XML转字符串
Format format = Format.getPrettyFormat();
format.setEncoding(\"gb2312\");//设置xml文件的字符为gb2312,解决中文问题
XMLOutputter xmlout = new XMLOutputter(format);
ByteArrayOutputStream bo = new ByteArrayOutputStream();
xmlout.output(doc,bo);
String xmlStr = bo.toString();
这里的XML DOCUMENT为org.jdom.Document
四、JAVASCRIPT中的处理
//字符串转XML
var xmlStr = \".....\";
var xmlDoc = new ActiveXObject(\"Microsoft.XMLDOM\");
xmlDoc.async=false;
xml
Doc.loadXML(xmlStr);
//可以处理这个xmlDoc了
var name = xmlDoc.selectSingleNode(\"/person/name\");
alert(name.text);
//XML转字符串
var xmlDoc = ......;
var xmlStr = xmlDoc.xml
这里的XML DOCUMENT为javascript版的XMLDOM
XML文档是近年来比较流行的结构化文档形式,其主要用途不只适用于开发网页,而且在其他场合也有很广泛的应用.
参考资料:
http://course.yhdgn.com/ShowArticle.asp?ArticleID=24274&Page=2
分享到:
相关推荐
Java提供了DOM(Document Object Model)、SAX(Simple API for XML)和StAX(Streaming API for XML)等解析器来处理XML。DOM加载整个XML文档到内存,适合小型数据;SAX是事件驱动,只读且不需要全部加载;StAX允许...
XmlDocument xmlDoc = new XmlDocument(); xmlDoc.Load("path_to_your_xml_file.xml"); ``` 读取XML节点值,可以使用`SelectSingleNode`或`SelectNodes`方法,如: ```csharp XmlNode node = xmlDoc....
总结起来,C# WebService返回指定的XML格式需要创建一个返回XML的Web方法,使用`System.Xml.XmlDocument`构建XML结构,然后通过HTTP请求返回。同时,可以结合本地XML文件读取数据,为Web服务提供更复杂的数据源。VS...
在Java中,我们可以使用`javax.xml.parsers.DocumentBuilderFactory`和`org.w3c.dom.Document`来解析XML文档,然后遍历DOM树,将其节点转化为Map。例如,每个XML元素的标签名作为键,元素的文本内容作为值。如果元素...
这通常通过DOM(Document Object Model)、SAX(Simple API for XML)或StAX(Streaming API for XML)等XML解析器完成。DOM加载整个XML文档到内存,适用于小规模数据;SAX和StAX则采用事件驱动,适用于处理大型XML...
private final String FILE_NAME = "d:/counter.xml"; // 初始化日期格式化对象 private final static DateFormat DATE_FORMATTER = DateFormat.getDateTimeInstance(); public WsCounterByWallimn() {} /**...
在Java Web服务(WebService)开发中,注解的应用极大地简化了服务的创建和配置。本文将深入探讨如何使用Java注解来构建Web服务,并结合给出的“lib”压缩包文件,推测可能包含了一些用于支持Web服务的库文件。 ...
这个类可能包含静态方法,如`beanToXml(JavaBean bean)`用于将JavaBean转换为XML字符串,以及`xmlToBean(String xml)`用于将XML字符串反向转换回JavaBean。使用这样的工具类可以使代码更加简洁,提高代码复用性。 ...
public XmlDocument SearchCourse(string courseName) { // 连接数据库,执行查询 // ... // 将查询结果转换为XML文档 XmlDocument resultDoc = new XmlDocument(); // 创建XML节点,填充数据 // ... return ...
【CXF小案例:Java WebService详解】 在Java开发中,Apache CXF是一个非常流行的开源框架,用于构建和消费Web服务。本篇文章将深入探讨如何使用CXF来创建一个简单的Java WebService,并介绍相关的知识点。 一、...
在Java中,有多种库可以用来解析XML,如DOM(Document Object Model),SAX(Simple API for XML)和JAXB(Java Architecture for XML Binding)。这里我们将使用DOM,因为它易于理解和操作整个XML文档结构。首先,...
public static XmlDocument QuerySoapWebService(string URL, string MethodName, Hashtable Pars) { HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create(URL); request.Method = "POST"; request....
Document document = DocumentBuilderFactory.newInstance().newDocumentBuilder().parse(new StringReader(xmlString)); XMLConfig config = new XMLConfig(); config.setIgnoreAnnotations(true); JSON json =...
Document doc = builder.parse(new InputSource(new StringReader(result.toString()))); // 解析XML并获取天气信息 NodeList nodes = doc.getElementsByTagName("temperature"); for (int i = 0; i (); i++) { ...
在Java中,我们可以利用JDK自带的JAX-WS(Java API for XML Web Services)来创建Web服务。JAX-WS提供了一种声明式的方式来定义服务接口,并将其实现为SOAP(Simple Object Access Protocol)服务。以下是一个简单的...
这通常可以通过使用JAXB(Java Architecture for XML Binding)或DOM(Document Object Model)等技术实现。同样,从Webservice返回的XML数据也需要解析成Java对象以便进一步处理。 总结,Java Axis提供了调用第三...
在提供的标签"源码 工具"中,源码可能是指实现上述步骤的Java代码,而工具可能指的是如`wsimport`这样的工具,或者可能涉及到处理XML的库,如JAXB(Java Architecture for XML Binding)或DOM(Document Object ...
WSDL2Java -uri document.wsdl -p com.crm.sap.webservice.feedback ``` - 其中 `-uri` 后跟 WSDL 文件路径,`-p` 后跟生成代码的包名。 #### 二、项目搭建与配置 1. **创建 Java 项目:** - 在 Eclipse 中...
Java 6中通过JAX-WS(Java API for XML Web Services)来支持WebService开发。JAX-WS提供了一种简便的方式来创建和部署Web服务,它使得开发人员能够轻松地将现有的Java类转换为Web服务接口,并且可以通过简单的注解...