在Java中写入XML文件操作:
package xml;
import java.io.BufferedWriter;
import java.io.FileOutputStream;
import java.io.OutputStreamWriter;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.transform.OutputKeys;
import javax.xml.transform.Transformer;
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;
public class XMLWriter {
private String fileName;
private Document document;
public XMLWriter(String fileName) throws Exception {
this.fileName = fileName;
createXmlDocument();
}
private void createXmlDocument() throws Exception {
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
DocumentBuilder builder = factory.newDocumentBuilder();
document = builder.newDocument();
}
public Element createDocumentElement(String name) {
Element root = document.createElement(name);
document.appendChild(root);
return root;
}
public Element createElement(Element parent, String tagName, String text) {
Element element = document.createElement(tagName);
if (text != null && text.length() > 0) {
element.setTextContent(text);
}
parent.appendChild(element);
return element;
}
public void toSave() throws Exception {
TransformerFactory factory = TransformerFactory.newInstance();
factory.setAttribute("indent-number", new Integer(4));// 设置缩进长度为4
Transformer transformer = factory.newTransformer();
transformer.setOutputProperty(OutputKeys.INDENT, "yes");// 设置自动换行
DOMSource source = new DOMSource(document);
transformer.transform(source, new StreamResult(new BufferedWriter(
new OutputStreamWriter(new FileOutputStream(fileName), "UTF-8"))));
}
public static void main(String[] args) {
String fileName = "E:\\test.xml";
System.out.println(fileName);
try {
XMLWriter writer = new XMLWriter(fileName);
Element root = writer.createDocumentElement("Books");
Element book = writer.createElement(root, "Book", "");
writer.createElement(book, "Price", "52.00");
Element title = writer.createElement(book, "Title", "test xml");
title.setAttribute("Auth", "yy");
writer.toSave();
} catch (Exception e) {
e.printStackTrace();
}
}
}
分享到:
相关推荐
在Java中,处理XML文件主要有四种方式:DOM(Document Object Model)、SAX(Simple API for XML)、StAX(Streaming API for XML)以及JAXB(Java Architecture for XML Binding)。下面将详细介绍这四种方法。 1....
在写入XML时,我们可以创建新的`Element`对象,添加属性和子元素,然后将其插入到XML文档中。使用DOM,我们需要`TransformerFactory`和`Transformer`来转换`Document`并写入文件。对于JDOM,`Document.write`方法...
Java中的DOM4J库是一个非常流行的处理XML文档的工具,它提供了一套简单易用的API,使得在Java中操作XML文件变得相当便捷。本文主要介绍如何使用DOM4J进行XML文件的操作,包括XML字符串与Document对象之间的转换,...
XML数据有时会存储在数据库中,这个驱动可能用于读取或写入XML数据。 9. **JasperReport和iReport**: - `jasper-runtime.jar`可能与JasperReports库有关,这是一个用于创建报表的开源工具,能够将XML数据转换为...
2. **本地库缺失**:如果没有使用构建工具,而是手动管理库,那么可能需要将`xml-apis-1.4.01.jar`文件复制到项目的类路径(ClassPath)中,通常是`lib`目录下,并确保在运行Java应用时能够找到这个库。 3. **版本...
Source可以是DOM树,Result可以是FileOutputSteam或Writer,用于写入XML数据。 在描述中提到,XML文件的节点是已知的,这意味着在操作时可以预先准备相应的处理逻辑。例如,如果知道每个XML文件包含特定的元素,...
#### 四、Java写入XML文件 写入XML文件时同样需要注意指定正确的字符编码。这里可以使用`BufferedWriter`配合`OutputStreamWriter`来完成: ```java import java.io.BufferedWriter; import java.io.File; import ...
本压缩包文件“Java-XML-programming-examples.rar”显然提供了关于Java与XML结合使用的实际编程示例,有助于深入理解这一技术。 在Java中,处理XML主要涉及以下几个核心知识点: 1. **DOM解析**:DOM(文档对象...
xml-apis-2.0.2.jar 是一个专门处理XML相关操作的Java库,它是ECIDE(Enterprise Content Interaction Development Environment,企业内容交互开发环境)的依赖包之一。ECIDE可能是一个用于构建企业级应用的集成开发...
4. **StAX**:StAX是一种流式解析器,提供了一种读取和写入XML的迭代方式,允许开发者按需处理XML事件。StAX的API包括`javax.xml.stream.XMLInputFactory`和`javax.xml.stream.XMLOutputFactory`,它们分别用于创建...
本文将详细介绍如何使用Java标准库中的DOM API来读取与写入XML文件。 #### 二、DOM API介绍 DOM(Document Object Model)是W3C推荐的标准,它提供了一种与平台和语言无关的方式访问和更新文档内容、结构和样式的...
在Java编程中,XML(eXtensible Markup ...总的来说,Java处理XML文件时,需要理解DOM解析的基本原理,正确设置编码,以及熟练运用相关API进行操作。通过这些知识,可以有效地在Java程序中读取、修改和保存XML文件。
4. **StAX(Streaming API for XML)**:StAX提供了一种流式处理XML的方式,介于DOM和SAX之间,允许以迭代方式读取或写入XML。`javax.xml.stream.XMLInputFactory`和`javax.xml.stream.XMLOutputFactory`是主要的...
以下是一个基本的写入XML文件的示例: ```java import javax.xml.transform.Transformer; import javax.xml.transform.TransformerFactory; import javax.xml.transform.dom.DOMSource; import javax.xml.transform...
而StAX则提供了一个逐个读取或写入XML元素的流式接口,节省内存。 2. **DOM解析XML** - DOM解析器将XML文件解析为一个树形结构,通过`javax.xml.parsers.DocumentBuilderFactory`和`org.w3c.dom.Document`等类...
Java语言在处理XML文件时,提供了丰富的API和库,使得我们可以轻松地读取、解析、修改和生成XML文档。在给定的场景中,我们主要关注如何使用Java来读取XML文件并根据需求生成新的文件。以下是关于这个主题的详细说明...
而StAX允许程序按需读取或写入XML事件,更加灵活。 在你编写的这个类中,可能包含以下几个核心功能: 1. **XML文件读取**:通常,你可以使用`java.io.File`和`javax.xml.parsers.DocumentBuilderFactory`来打开并...
本项目案例“java对xml操作的项目案例”深入探讨了如何使用Java来读取、修改和写入XML文件。下面将详细阐述相关知识点。 一、Java与XML的交互 1. DOM解析器:Document Object Model (DOM) 是一种将整个XML文档加载...
写入XML文件的过程则涉及创建`Document`对象,构建DOM树,然后将DOM树序列化为XML文件。`writeXMLFile`方法提供了基本的框架,但代码示例未完全展示。下面详细介绍这一过程: 1. 创建`DocumentBuilderFactory`实例...