在做一般的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;
xmlDoc.loadXML(xmlStr);
//可以处理这个xmlDoc了
var name = xmlDoc.selectSingleNode(\"/person/name\");
alert(name.text);
//XML转字符串
var xmlDoc = ......;
var xmlStr = xmlDoc.xml
这里的XML DOCUMENT为javascript版的XMLDOM
分享到:
相关推荐
利用pugixml 转化xml为string
当我们需要在使用XML的系统和使用JSON的系统之间进行数据交互时,就需要将XML字符串转换为JSON格式。 XML是一种标记语言,它允许自定义标签来描述数据,并且支持嵌套结构。XML文档通常由元素、属性、文本内容等组成...
StreamSource source = new StreamSource(new StringReader(xmlString)); ItemsWrapper wrapper = (ItemsWrapper) unmarshaller.unmarshal(source); items.addAll(wrapper.getItems()); ``` 在这里,我们创建...
在将xml文件转换为DataSet对象时,我们首先使用XmlDocument类加载xml文件,然后使用StringReader类读取xml文件内容,并将其装载到DataSet对象中。 3. 将DataSet转换为xml对象字符串 该方法将DataSet对象转换为xml...
在Java开发中,XML(可扩展标记语言)和Bean之间的相互转换是常见的操作,尤其是在处理配置文件、数据持久化或Web服务时。这里的"bean"通常指的是JavaBeans,即符合特定设计模式的Java对象,它们封装了数据并提供了...
JDOM(Java Document Object Model)是一个专门为Java设计的XML API,它提供了对XML文档的全面控制,包括创建、修改和读取XML文档。通过JDOM,我们可以方便地处理XML字符串,确保其符合W3C的XML规范。 在开始之前,...
这个类可能包含静态方法,如`beanToXml(JavaBean bean)`用于将JavaBean转换为XML字符串,以及`xmlToBean(String xml)`用于将XML字符串反向转换回JavaBean。使用这样的工具类可以使代码更加简洁,提高代码复用性。 ...
本文将详细介绍如何利用Java标准库中的`Document`及相关类来解析和修改XML文件。 #### XML解析基础:`Document`及关联类 ##### DocumentBuilderFactory与DocumentBuilder 解析XML文件的第一步是创建`Document`...
"java转换xml、list、map和json" ...本文主要讲述了Java中将xml、list、map和json之间的转换的相关知识点,包括xml和map之间的转换、xml和list之间的转换、xml和json之间的转换、map和json之间的转换等。
本项目"XML Document to Json"着重于如何将XML文档转换为JSON格式,这对于数据处理和跨平台通信尤其重要。下面我们将深入探讨这个主题。 XML是一种标记语言,它允许定义自定义的标签来描述数据结构和内容。它的优点...
本文将详细介绍两种主要的XML与Java对象互相转换的方法:DOM(Document Object Model)解析和JAXB(Java Architecture for XML Binding)。 1. DOM解析: DOM是一种W3C标准,它将XML文档解析成一棵由节点组成的树,...
本主题聚焦于Java与XML之间的相互转化,特别是如何利用XML文件自动生成JavaBean对象,以及Java对象到XML的序列化和反序列化过程。 首先,Java与XML的转化通常涉及两个主要步骤:解析XML文件生成Java对象和将Java...
在Java开发中,将XML数据与Java实体类进行相互转换是非常常见的需求,这有助于简化数据处理和存储。本文将详细介绍如何使用工具类进行XML与实体类的转换,并探讨相关依赖和实现方法。 首先,XML转换为Java实体类的...
本篇文章将详细介绍如何将Map和List集合转换为XML字符串,以及如何将XML字符串反向转换回Map和List集合。 首先,让我们探讨`Map`集合转成XML字符串的过程。一个`Map`对象存储键值对,可以使用各种库如`JAXB (Java ...
4. 使用XMLSerializer将XML转换为JSONObject:`JSONObject json = XMLSerializer.read(xmlString);` 如果是从XML Document转换,可以使用`XMLSerializer.read(document)`。 5. 转换后的JSONObject可以直接序列化为...
首先,我们需要了解Java中处理XML的主要库:DOM(Document Object Model)、SAX(Simple API for XML)和JAXB(Java Architecture for XML Binding)。在这次任务中,DOM可能是最适合的方法,因为它允许我们通过路径...
在IT行业中,XML(eXtensible Markup Language)是一种重要的数据交换格式,广泛应用于软件开发、数据存储和网络通信等领域。本示例“Generate XML String with Parser API.zip_API_saltucl_xml”着重介绍如何利用...
它首先使用`XmlDocument`加载XML文件,然后同样通过`StringReader`和`XmlTextReader`读取XML内容并将其转化为`DataSet`。 3. `ConvertDataSetToXML(DataSet xmlDS)`: 这个方法将一个`DataSet`对象转换为XML字符串。...
### Excel与XML相互转化的Java实现 #### 引言 随着信息技术的发展,数据处理与交换变得日益重要。Microsoft Excel作为一款广泛使用的数据处理工具,在办公自动化领域占据着举足轻重的地位。与此同时,XML...
3. **转换为字符串**:为了发送或保存,我们需要将`Document`对象转换为字符串,这通常通过`TransformerFactory`和`Transformer`实现。 ```java TransformerFactory transformerFactory = TransformerFactory.new...