package com.gyj.jdom;
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;
import org.w3c.dom.Node;
/**
* 写入DOM到XML文件
* @author GYJ
* @date 2014-3-23
*/
public class XMLWriterDOM {
/**
* 将会写入这么一份文件
* <p>1、根元素为"Employees" , 命名空间为"http://www.miamiheat.com"
* 2、创建两份员工,都有id属性
* 3、内容都有姓名、年龄、角色
* 4、写出数据到文件、打印到控制台
* @param args
* @throws TransformerException
*/
public static void main(String[] args) throws TransformerException {
DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder dBuilder;
try {
dBuilder = dbFactory.newDocumentBuilder();
Document doc = dBuilder.newDocument();
//添加根元素
Element rootElement = doc.createElementNS("http://www.miamiheat.com", "Employees");
doc.appendChild(rootElement);
//添加子元素到根目录下
rootElement.appendChild(getEmployee(doc, "1", "gyj", "18"));
rootElement.appendChild(getEmployee(doc, "2", "james", "29"));
//把创建好的文件输出
TransformerFactory transformerFactory = TransformerFactory.newInstance();
Transformer transformer = transformerFactory.newTransformer();
transformer.setOutputProperty(OutputKeys.INDENT, "yes");
DOMSource domSource = new DOMSource(doc);
//控制台输出
StreamResult console = new StreamResult(System.out);
//输出到文件
StreamResult file = new StreamResult("emp.xml");
//写数据
transformer.transform(domSource, console);
transformer.transform(domSource, file);
} catch (ParserConfigurationException e) {
e.printStackTrace();
}
//out put==============================================
/*<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<Employees xmlns="http://www.miamiheat.com">
<employee id="1">
<name>gyj</name>
<age>18</age>
</employee>
<employee id="2">
<name>james</name>
<age>29</age>
</employee>
</Employees>*/
//======================================================
//生成了emp.xml
/*<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<Employees xmlns="http://www.miamiheat.com">
<employee id="1">
<name>gyj</name>
<age>18</age>
</employee>
<employee id="2">
<name>james</name>
<age>29</age>
</employee>
</Employees>*/
}
private static Node getEmployee(Document doc, String id, String name, String age) {
//创建子节点
Element employee = doc.createElement("employee");
employee.setAttribute("id", id);
//创建字节点的元素
employee.appendChild(getEmployeeElements(doc, employee, "name", name));
employee.appendChild(getEmployeeElements(doc, employee, "age", age));
return employee;
}
/**
* 创建子元素节点
* @param doc 文档对象
* @param element 子元素的tag
* @param name 子元素节点
* @param value 子元素节点值
* @return
*/
private static Node getEmployeeElements(Document doc, Element element, String name, String value) {
Element node = doc.createElement(name);
node.appendChild(doc.createTextNode(value));
return node;
}
}
分享到:
相关推荐
**JDOM解析XML文件** XML(eXtensible Markup Language)是一种用于标记数据的语言,广泛应用于数据交换、配置文件和文档存储等领域。在Java中,JDOM(Java Document Object Model)是一个流行的选择来解析和操作...
JDOM对于中小规模的XML文件和简单的读写操作是非常合适的,但对于大规模或频繁的读写操作,可能需要考虑更高效的解决方案。总之,理解XML和掌握至少一种XML处理库是每个Java开发者必备的技能之一。
标题“JDom 读写XML”指的是使用JDom库进行XML文档的处理,包括读取和写入操作。JDom是一个Java API,它为XML文档提供了全面且高性能的处理能力,使得开发者能够方便地构建、修改和访问XML数据。 **JDom详解** 1. ...
- **写入XML**:如果需要将内存中的JDOM结构写回XML文件,可以使用`TransformerFactory`和`Transformer`进行转换。 4. **常用操作** - **添加元素**:使用`Element`的`createElement()`创建新元素,然后通过`...
在这个例子中,我们将学习如何读取XML文件,创建一个`SAXBuilder`对象来构建XML文档的DOM(文档对象模型)表示,然后通过`Document`对象来访问和修改XML结构。 2. `sohuchannel.xml`:这是我们要解析的XML文件,可能...
本篇文章将详细探讨JDOM在读写XML操作中的应用。 ### 1. JDOM简介 JDOM是一个针对Java的DOM(Document Object Model)实现,旨在为Java开发者提供一个高效且灵活的方式来处理XML文档。它提供了直接在内存中构建和...
在IT行业中,XML(eXtensible Markup Language)是一种被广泛...无论是解析现有的XML文件还是构建新的XML文档,JDOM都能提供必要的支持。通过深入学习和实践,开发者可以充分利用JDOM的功能,提升XML处理的效率和质量。
2. 使用`build()`方法加载XML文件,返回`Document`对象。 3. 通过`Document`对象访问元素、属性和文本。 **修改XML文档** JDOM允许直接在内存中修改XML文档: 1. 获取要修改的元素或属性。 2. 修改元素的文本、...
org.jdom.adapters包含了与dom适配的java类 org.jdom.filter包含了xml文档的过滤器类 org.jdom.input包含了读取xml文档的类 org.jdom.output包含了写入xml文档的类 org.jdom.transform包含了将jdomxml 文档接口转换...
### JDOM 读取与修改 XML 文件 #### JDOM 简介 JDOM(Java Document Object Model)是一个用于处理 XML 数据的 Java 库。它提供了面向对象的 API 来解析、创建和修改 XML 文档。JDOM 的设计非常直观且易于使用,...
然而,需要注意的是,JDOM虽然简单易用,但在处理大型XML文件时可能会消耗大量内存。对于性能要求较高的场景,可以考虑使用SAX(Simple API for XML)或StaX(Streaming API for XML)等其他解析器。同时,确保正确...
2. 使用`SAXBuilder`的`build`方法读取XML文件,生成`Document`对象。 3. 通过`Document`对象访问XML结构,如获取根元素、遍历子元素等。 **创建XML文档** 创建XML文档主要涉及以下操作: 1. 创建`Element`对象,...
XML(eXtensible Markup...总之,DOM和JDOM是Java中解析XML的重要工具,它们提供了灵活的方式来读取、修改和写入XML文件。根据项目需求和性能考虑,选择合适的方法并熟练掌握其用法,能极大地提升XML处理的效率和质量。
3. **读取XML文件**: 使用Builder的`build`方法解析XML文件,得到`Document`对象。 ```java File inputFile = new File("path_to_your_xml_file.xml"); Document document = builder.build(inputFile); ``` 4. ...
通过这些类,你可以创建新的XML文档,或者读取并修改已有的XML文件。 创建XML文档的基本步骤如下: 1. 创建`DocumentBuilderFactory`,然后通过它获取`DocumentBuilder`。 2. 使用`DocumentBuilder`创建一个空的`...
总的来说,JDOM是Java开发者处理XML文件的一种强大工具,尤其适合需要频繁读写和操作XML文档的场景。通过JDOM,开发者可以方便地创建、解析和修改XML文档,提高开发效率。在实际项目中,可以根据需求和性能考虑选择...
2. 使用`SAXBuilder`的`build()`方法读取XML文件并构建`Document`对象。 3. `Document`对象代表了整个XML文档,你可以通过其根元素`getRootElement()`访问XML的顶层元素。 4. 通过遍历元素、属性和文本节点,可以...
下面是一个简单的 JDOM 使用示例,演示如何读写 XML 文件。在这个例子中,我们有一个名为 `MyXml.xml` 的 XML 文件,包含两个书籍条目,每个条目有书名、作者、出版社、价格和出版日期等信息。为了操作这个 XML 文件...
2. **JDOM写入XML**:构建JDOM的`Document`对象,然后用`org.jdom2.output.Format`和`XMLOutputter`将`Document`转换成XML字符串或写入文件。 **DOM4J** DOM4J是另一个流行的Java XML库,它提供了DOM、SAX和JDOM的...