`
hengxing2009
  • 浏览: 89185 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

XML字符串和XML Document之间的转换

    博客分类:
  • java
阅读更多
在web项目中,XML作为一种重要的数据存储和传输介质,被广泛使用。XML文件,XML字符串和XML Document对象是XML存在的三种形式,XML文件无需多言,和普通的文本并无二致;倒是在做一般的XML数据交换过程中,经常要使用XML字符串和XML Document对象,因此在这两种形式之间进行转化成为了使用XML的必备技术。在所有操控XML的技术中,都提供了这两种形式XML之间的转换方法。
  下面我就各种XML技术对此问题的解决方法做个总结,和大家分享,也方便自己今后查阅。
一,使用JDOM(这是我最常使用的一种技术)
  1.字符串转Document对象
String xmlStr = ".....";
StringReader sr = new StringReader(xmlStr);
InputSource is = new InputSource(sr);
Document doc = (new SAXBuilder()).build(is);
 
2.Document对象转字符串
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(); 

注:Document为org.jdom.Document


二,使用最原始的javax.xml.parsers,标准的jdk api
  1.字符串转Document对象
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); 

2.Document对象转字符串
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(); 
注:Document为org.w3c.dom.Document


三,使用dom4j(这是最简单的方法)
  1.字符串转Document对象
String xmlStr = "......";
Document document = DocumentHelper.parseText(xmlStr);  2.Document对象转字符串
Document document = ...;
String text = document.asXML();

注:Document为org.dom4j.Document


四,在JavaScript中的处理
1.字符串转Document对象
var xmlStr = ".....";
var xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
xmlDoc.async=false;
xmlDoc.loadXML(xmlStr);
//可以处理这个xmlDoc了
var name = xmlDoc.selectSingleNode("/person/name");
alert(name.text);  2.Document对象转字符串
var xmlDoc = ......;
var xmlStr = xmlDoc.xml 

注:Document为javaScript版的XMLDOM

本文出自http://yangfei520.blog.51cto.com/1041581/382977

分享到:
评论

相关推荐

    java解析xml字符串

    1. **初始化XML源**:首先,将XML字符串转化为`StringReader`对象,这是为了将字符串转换为可以被SAXBuilder读取的形式。接着,使用`InputSource`封装`StringReader`,以便SAXBuilder能够正确识别并解析XML数据。 2...

    map/list集合转化成xml字符串 xml字符串转化成map/list集合

    本篇文章将详细介绍如何将Map和List集合转换为XML字符串,以及如何将XML字符串反向转换回Map和List集合。 首先,让我们探讨`Map`集合转成XML字符串的过程。一个`Map`对象存储键值对,可以使用各种库如`JAXB (Java ...

    PB解析XML字符串 把XML 变为数据窗口

    1. 加载XML字符串:首先,你需要使用PB的XML解析函数如`XMLTextToDOM`或`XMLTextToDOMEx`,将XML文本转换成DOM(Document Object Model)对象。DOM是XML文档的一种内存表示,可以方便地通过节点遍历和操作。 2. ...

    C++解析xml文档或者xml字符串方法

    同样使用MSXML库,但这次需要将XML字符串转换为`BSTR`类型,然后传递给解析函数: ```cpp void parseXMLString(const char* xmlStr) { BSTR xmlBlob = _bstr_t(xmlStr); // 调用解析函数 RealPlay(xmlBlob); } ...

    xml格式的字符串转换成List

    要将这样的XML字符串转换为List,我们需要解析XML并将其转化为相应的Java或C#对象。这个过程通常分为以下几个步骤: 1. **解析XML**:可以使用内置库或第三方库来解析XML字符串。在Java中,可以使用DOM(Document ...

    xml字符串解析

    8. **序列化回XML字符串**:完成解析和操作后,可能需要将`Document`对象重新转换为XML字符串,这可以通过`OutputFormat`和`XMLWriter`实现。 ```java import org.dom4j.io.OutputFormat; import org.dom4j.io.XML...

    字符串转化为XML文件

    SaveMesToXML方法首先将字符串加载到XmlDocument对象中,然后将XmlDocument对象保存到文件中。SaveMesToXML方法返回保存的文件名。 其他知识点 * regional directive:#region和#endregion是C#中的 regional ...

    格式化xml字符串,并生成xml文件

    本文将围绕“格式化XML字符串并生成XML文件”这一主题展开,结合提供的标签“源码”和“工具”,探讨如何通过Java编程实现这一功能。 首先,我们有两个Java源代码文件,即`XMLFileUtil.java`和`XMLFormatUtil.java`...

    使用dom4j将xml字符串转换成Bean对象

    要将XML字符串转换为Bean对象,我们首先需要创建一个Bean类,这个类的属性与XML节点相对应。例如,如果我们有以下XML字符串: ```xml <name>Yang Yong <age>30 <email>yangyong@example.com</email> ``` 我们...

    实体类生成XML格式字符串

    这段代码会生成一个XML字符串,内容类似于: ```xml 张三 <age>30 北京 北京市 ``` 注意,JAXB默认不会生成XML声明(如`<?xml version="1.0" encoding="UTF-8"?>`),如果需要,可以设置Marshaller的...

    JS读取XML字符串形成树

    1. DOM(Document Object Model)解析器:`DOMParser`对象允许我们将XML字符串转换为DOM树。这是一个完整的XML文档对象模型,可以方便地通过节点操作进行遍历和修改。 ```javascript let parser = new DOMParser(); ...

    dom4j解析xml字符串

    // 下面的是通过解析xml字符串的 doc = DocumentHelper.parseText(xml); // 将字符串转为XML Element rootElt = doc.getRootElement(); // 获取根节点 System.out.println("根节点:"+ rootElt.getName()); // ...

    将xml字符串转换为datatable

    ### 将XML字符串转换为DataTable的知识点 #### 1. XML与DataTable简介 - **XML (Extensible Markup ...通过上述内容,我们可以深入了解如何将XML字符串转换为`DataTable`,这对于数据处理和分析是非常有用的。

    DOM、SAX、DOM4J、JDOM、StAX生成XML并返回XML字符串形式

    在生成XML字符串时,DOM4J提供了简洁的API来构建和输出XML文档。 4. JDOM JDOM是另一个Java的XML处理库,它专注于提供纯Java解决方案。JDOM提供了一个基于树的API,类似于DOM,但设计更简洁,易于使用。与DOM相比,...

    JAVA JAXB 解析XML嵌套子节点为字符串

    在Java开发中,JAXB(Java Architecture for XML Binding)是一个标准的API,用于将XML文档与Java对象之间进行互相转换。这个技术对于处理XML数据,尤其是解析和生成XML文档非常有用。当我们面临XML文档中存在嵌套子...

    XML文档转换成字符串

    将XML文档转换成字符串通常是指将XML文档的结构和内容转化为一个单一的文本字符串。 在Java中,我们可以利用DOM(Document Object Model)解析器和Transformer类来实现这个转换。DOM解析器将XML文档加载到内存中,...

    DOM4J 读取xml字符串

    **DOM4J 读取XML字符串** DOM4J 是一个非常强大的 Java XML API,它提供了丰富的功能,使得处理 XML 文件变得更加简单。DOM4J 的设计理念是简洁、灵活且高性能,它支持 SAX 和 DOM 解析,并提供了面向对象的接口。...

    xml与实体类转换工具

    4. **XML字符串转实体类**:首先,可能需要将输入的XML字符串转换为`Document`对象,然后按照上述步骤进行反序列化。 5. **实体类转XML**:反之,使用`Marshaller`将Java对象序列化为XML字符串。例如,`marshaller....

    js的XML解析器 可以解析XMl文件和XML字符串

    通过DOMParser,可以将XML字符串转换为DOM对象,然后遍历和操作这个对象。 4. **问题与限制** - **特殊字符**:XML文档中可能存在特殊字符,如`、`>`、`&`等,这些在XML中具有特殊含义,需要正确转义。如果未正确...

    xml解析和生成字符串、文档的实例

    本文将深入探讨如何使用Java进行XML的解析和生成,包括处理XML字符串和XML文件。 首先,让我们从解析XML字符串开始。在Java中,我们可以使用`javax.xml.parsers.DocumentBuilderFactory`和`org.w3c.dom.Document`来...

Global site tag (gtag.js) - Google Analytics