将生成的XML文件保存到硬盘上,需要使用的类有TransformerFactory,Transformer,DOMSource,StreamResult。
import java.io.File;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
import javax.xml.transform.OutputKeys;
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerConfigurationException;
import javax.xml.transform.TransformerException;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.stream.StreamResult;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
/**
* 将生成的xml文件输出到文件中
* @author ad
*
*/
public class DOMOutDemo {
public static void main(String[] args) {
//①建立DocumentBuilderFactory,用于取得DocumentBuilder
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
//②通过DocumentBuilderFactory来取得DocumentBuilder
DocumentBuilder builder = null;
try {
builder = factory.newDocumentBuilder();
} catch (ParserConfigurationException e) {
e.printStackTrace();
}
//③定义Document接口对象,通过DocumentBuilder类进行DOM树的转换操作
Document doc = null;
doc = builder.newDocument();//创建一个新的文档
//④建立各个操作节点
Element addresslist = doc.createElement("addresslist");//建立节点
Element linkman = doc.createElement("linkman");
Element name = doc.createElement("name");
Element email = doc.createElement("email");
//⑤设置节点的文本内容,即为每一个节点添加文本节点
name.appendChild(doc.createTextNode("用户"));//设置文本
email.appendChild(doc.createTextNode("user@163.com"));
//⑥设置节点关系
linkman.appendChild(name);
linkman.appendChild(email);
addresslist.appendChild(linkman);//子节点
doc.appendChild(addresslist);//文档上保持节点
//⑦输出文档到文件中
TransformerFactory tf = TransformerFactory.newInstance();
Transformer t = null;
try {
t = tf.newTransformer();
} catch (TransformerConfigurationException e) {
e.printStackTrace();
}
t.setOutputProperty(OutputKeys.ENCODING, "GB2312");//设置编码
DOMSource source = new DOMSource(doc);//输出文档
StreamResult result = new StreamResult(new File("D:"+File.separator+"testXML\\output.xml"));//指定输出位置
try {
t.transform(source, result);
} catch (TransformerException e) {
e.printStackTrace();
}
}
}
这行代码我改成GBK或者UTF-8就不能正常显示中文了 求教
t.setOutputProperty(OutputKeys.ENCODING, "GB2312");//设置编码
分享到:
相关推荐
- 解析XML文件: ```java Document doc = builder.parse("path_to_xml_file.xml"); ``` - 创建新的`Document`: ```java Document doc = builder.newDocument(); ``` 4. 在`Document`中创建元素、属性和其他节点: ...
以下是一个简单的DOM生成XML文件的例子: ```java DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); DocumentBuilder builder = factory.newDocumentBuilder(); Document doc = builder....
### DOM动态生成与XML DOM的使用 ...本文介绍了XML DOM的基本概念、主要对象以及如何使用XMLDOMDocument对象创建XML文档的方法。掌握了这些知识,你就可以更轻松地在各种应用场景中使用XML技术了。
PHP DOM生成XML文件 一、实验环境 1、环境搭建:Windows 8+Apache 2.4.18+MySQL 5.7.11+PHP 7.1.0 。 2、文本编辑器:Sublime Text3。 二、主要技术 本实验主要使用PHP 7的DOM组件创建生成一个XML文件。
文档对象模型 节点和节点树 使用DOM加载XML文档 使用DOM访问、创建和修改节点
DOM解析器将整个XML文件加载到内存中,形成一个树形结构,允许开发者通过节点操作来访问和修改XML文档。这种方式的优点在于方便、直观,但缺点是占用内存较大,不适用于处理大型XML文件。 首先,我们需要了解XML的...
创建XML文档同样可以通过DOM实现。以下是一个简单的例子,展示了如何使用JavaScript动态创建XML: ```javascript // 创建XML文档 var xmlDoc = document.implementation.createDocument(null, "root", null); // ...
在这个例子中,我们将深入探讨如何使用DOM解析XML文件,以理解和掌握XML文档的结构,并进行数据提取、修改和创建。 首先,XML(Extensible Markup Language)是一种标记语言,用于存储和传输数据,具有自描述性和...
本文将深入探讨如何使用Dom4J库来创建XML文档,包括初始化文档、添加元素、设置属性、插入文本以及最终保存文档至文件系统。 #### 一、Dom4J简介 Dom4J(Document Object Model for Java)是一款开源的、轻量级的...
Java DOM 解析 XML 实例是 Java 语言中常用的 XML 解析方法之一,使用 W3C 推荐的文档对象模型(Document Object Model,DOM)来解析 XML 文档。DOM 提供了一个树形结构的对象模型,通过遍历树形结构可以访问和操作 ...
在处理XML文件时,DOM解析器会将整个XML文档加载到内存中,形成一个完整的节点树,这样我们就可以通过这个树来查找、修改或遍历XML数据。 XML(eXtensible Markup Language)是一种标记语言,常用于存储和传输结构...
本篇文章将深入探讨DOM解析XML文件在Android中的应用实例。 首先,DOM解析的基本思想是将整个XML文件加载到内存中,形成一个树形结构,即DOM树。这样做的优点是解析后的数据可以方便地进行任意位置的查找和修改,但...
### ASP DOM生成XML知识点解析 #### 一、概述 在Web开发领域,DOM(Document Object Model)是一种处理可扩展标记语言(如XML或HTML)的标准规范。它为文档提供了结构化的表示方法,并定义了用于访问和操作文档...
1. 加载XML文档:首先,我们需要一个`DocumentBuilderFactory`实例来配置和创建`DocumentBuilder`,然后用`DocumentBuilder`的`parse()`方法加载XML文件。 ```java DocumentBuilderFactory factory = ...
此外,Qt还支持修改DOM树并保存回XML文件。例如,添加新的`item`元素: ```cpp QDomElement newItem = doc.createElement("item"); newItem.setAttribute("id", "new_id"); root.appendChild(newItem); // 保存到...
在读取XML文件后,我们可以使用DOM API遍历文档结构。例如,如果我们有一个如下的XML结构: ```xml <title>ITEYE博客 <url>https://iteye.com</url> ``` 我们可以这样获取`<link>`元素: ```java // 获取...
这些库提供了创建DOM解析器、解析XML文件和操作XML节点的功能。 ### 3. 实现步骤 #### (1) 导入所需的库 ```java import javax.xml.parsers.DocumentBuilderFactory; import javax.xml.parsers.DocumentBuilder; ...
3. **加载XML文件**:使用`parse()`方法读取XML文件到`Document`对象。 ```java File inputFile = new File("path_to_your_xml_file.xml"); Document doc = dBuilder.parse(inputFile); ``` 4. **设置文档属性...