在做一般的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
|
相关推荐
SaveMesToXML方法首先将字符串加载到XmlDocument对象中,然后将XmlDocument对象保存到文件中。SaveMesToXML方法返回保存的文件名。 其他知识点 * regional directive:#region和#endregion是C#中的 regional ...
要将这样的XML字符串转换为List,我们需要解析XML并将其转化为相应的Java或C#对象。这个过程通常分为以下几个步骤: 1. **解析XML**:可以使用内置库或第三方库来解析XML字符串。在Java中,可以使用DOM(Document ...
当我们面临XML文档中存在嵌套子节点,并且希望将其解析为字符串时,JAXB提供了一种有效的方法。 首先,我们需要理解XML文档的基本结构。XML是一种可扩展标记语言,它通过标签来定义元素和数据,允许数据以层次结构...
这包括了如何将XML字符串转换为可读写的数据结构,以及如何遍历、读取和修改XML文档的元素和属性。这对于在Java应用程序中处理动态生成或外部提供的XML数据非常有用。掌握这一技能,开发者能够更有效地集成XML数据...
接下来,我们讨论如何将XML字符串转换为`Map`和`List`。这里,通常会使用`DOM`解析器或`StAX (Streaming API for XML)`来解析XML。以下是一个使用`DOM`解析器将XML字符串转换为`Map`的示例: ```java import org.w3...
将XML文档转换成字符串通常是指将XML文档的结构和内容转化为一个单一的文本字符串。 在Java中,我们可以利用DOM(Document Object Model)解析器和Transformer类来实现这个转换。DOM解析器将XML文档加载到内存中,...
本文将围绕“格式化XML字符串并生成XML文件”这一主题展开,结合提供的标签“源码”和“工具”,探讨如何通过Java编程实现这一功能。 首先,我们有两个Java源代码文件,即`XMLFileUtil.java`和`XMLFormatUtil.java`...
1. 加载XML字符串:首先,你需要使用PB的XML解析函数如`XMLTextToDOM`或`XMLTextToDOMEx`,将XML文本转换成DOM(Document Object Model)对象。DOM是XML文档的一种内存表示,可以方便地通过节点遍历和操作。 2. ...
同样使用MSXML库,但这次需要将XML字符串转换为`BSTR`类型,然后传递给解析函数: ```cpp void parseXMLString(const char* xmlStr) { BSTR xmlBlob = _bstr_t(xmlStr); // 调用解析函数 RealPlay(xmlBlob); } ...
这段代码会生成一个XML字符串,内容类似于: ```xml 张三 <age>30 北京 北京市 ``` 注意,JAXB默认不会生成XML声明(如`<?xml version="1.0" encoding="UTF-8"?>`),如果需要,可以设置Marshaller的...
3. **创建Document对象**:使用DOM4J的`DocumentHelper`类的`parseText()`方法将XML字符串转换为`Document`对象。 ```java import org.dom4j.Document; import org.dom4j.DocumentException; import org.dom4j....
下面是一个示例代码,展示了如何将一个XML字符串转换为JDOM的`Document`对象: ```java import org.jdom2.Document; import org.jdom2.Element; import org.jdom2.input.SAXBuilder; import java.io.StringReader;...
本文将深入探讨如何使用Java进行XML的解析和生成,包括处理XML字符串和XML文件。 首先,让我们从解析XML字符串开始。在Java中,我们可以使用`javax.xml.parsers.DocumentBuilderFactory`和`org.w3c.dom.Document`来...
利用pugixml 转化xml为string
### 将XML字符串转换为DataTable的知识点 #### 1. XML与DataTable简介 - **XML (Extensible Markup ...通过上述内容,我们可以深入了解如何将XML字符串转换为`DataTable`,这对于数据处理和分析是非常有用的。
要将XML字符串转换为Bean对象,我们首先需要创建一个Bean类,这个类的属性与XML节点相对应。例如,如果我们有以下XML字符串: ```xml <name>Yang Yong <age>30 <email>yangyong@example.com</email> ``` 我们...
在IT行业中,XML...通过这个`JdomUtil`类,你可以轻松地将非标准XML字符串转换为标准格式,确保数据的正确解析和处理。这个工具对于处理来自不可靠来源的XML数据尤其有用,可以避免因格式不正确而导致的问题。
// 下面的是通过解析xml字符串的 doc = DocumentHelper.parseText(xml); // 将字符串转为XML Element rootElt = doc.getRootElement(); // 获取根节点 System.out.println("根节点:"+ rootElt.getName()); // ...
通过DOMParser,可以将XML字符串转换为DOM对象,然后遍历和操作这个对象。 4. **问题与限制** - **特殊字符**:XML文档中可能存在特殊字符,如`、`>`、`&`等,这些在XML中具有特殊含义,需要正确转义。如果未正确...
在.NET框架中,`XmlDocument`是用于处理XML文档的核心类,它提供了丰富的API来创建、修改和查询XML数据。本篇文章将详细讲解如何利用C#中的`XmlDocument`类遍历XML文档的所有节点,包括节点名称、类型以及其属性。 ...