`
captain
  • 浏览: 135116 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类

xml的document和xml字符串间的转换

阅读更多
XML字符串和XML DOCUMENT的相互转换

在做一般的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



船长 2006-07-13 12:52 发表评论
分享到:
评论

相关推荐

    字符串转化为XML文件

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

    xml格式的字符串转换成List

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

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

    当我们面临XML文档中存在嵌套子节点,并且希望将其解析为字符串时,JAXB提供了一种有效的方法。 首先,我们需要理解XML文档的基本结构。XML是一种可扩展标记语言,它通过标签来定义元素和数据,允许数据以层次结构...

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

    接下来,我们讨论如何将XML字符串转换为`Map`和`List`。这里,通常会使用`DOM`解析器或`StAX (Streaming API for XML)`来解析XML。以下是一个使用`DOM`解析器将XML字符串转换为`Map`的示例: ```java import org.w3...

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

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

    实体类生成XML格式字符串

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

    xml字符串解析

    3. **创建Document对象**:使用DOM4J的`DocumentHelper`类的`parseText()`方法将XML字符串转换为`Document`对象。 ```java import org.dom4j.Document; import org.dom4j.DocumentException; import org.dom4j....

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

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

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

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

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

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

    如何将xml的String字符串转化标准格式的String字符串(jdom)

    在IT行业中,XML...通过这个`JdomUtil`类,你可以轻松地将非标准XML字符串转换为标准格式,确保数据的正确解析和处理。这个工具对于处理来自不可靠来源的XML数据尤其有用,可以避免因格式不正确而导致的问题。

    dom4j解析xml字符串

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

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

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

    XmlDocument 节点遍历C#

    在.NET框架中,`XmlDocument`是用于处理XML文档的核心类,它提供了丰富的API来创建、修改和查询XML数据。本篇文章将详细讲解如何利用C#中的`XmlDocument`类遍历XML文档的所有节点,包括节点名称、类型以及其属性。 ...

    JS读取XML字符串形成树

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

    JDK自带方法解析xml特定格式的字符串

    - 使用`parse()`方法,传入一个`InputSource`对象,可以是包含XML的`StringReader`或`InputStream`,将XML字符串转换为`Document`对象。 ```java DocumentBuilderFactory factory = DocumentBuilderFactory.new...

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

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

    xml与实体类转换工具

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

    利用pugixml 转化xml为string

    利用pugixml 转化xml为string

    jQ处理xml文件和xml字符串的方法(详解)

    在这段代码中,`$.parseXML(xmlStr)`将XML字符串转换为XML Document对象,然后`$()`将这个对象包裹成jQuery对象,使得我们可以使用jQuery的DOM操作方法。 在处理XML文档时,常见的操作包括查找元素(如`find()`),...

Global site tag (gtag.js) - Google Analytics