源文件src
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
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.jdom.input.SAXBuilder;
import org.jdom.output.XMLOutputter;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.NamedNodeMap;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
import org.xml.sax.SAXException;
/**
* 功能:
* @author yaos email: yaos@isoftstone-ai.com
* @date 2008 11 25
*/
public class TestParseDOM {
/**
* 功能:
* @param args
* @throws TransformerException
*/
public static void main(String[] args) throws ParserConfigurationException, SAXException, IOException, TransformerException {
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
DocumentBuilder db = dbf.newDocumentBuilder();
Document doc = db.newDocument();
Element root = doc.createElement("school");
for(int i = 1 ; i <= 3 ; i ++){
Element grade = doc.createElement("grade");
grade.setAttribute("level", String.valueOf(i));
for(int j = 1 ; j <= 2 ; j ++){
Element classes = doc.createElement("classes");
classes.setAttribute("name", String.valueOf(j));
Element teacher = doc.createElement("teacher");
teacher.setTextContent("teacher"+String.valueOf(i+j));
Element monitor = doc.createElement("monitor");
monitor.setTextContent("stu"+String.valueOf(i+j));
Element number = doc.createElement("number");
number.setTextContent(String.valueOf(i*j+i*j));
classes.appendChild(teacher);
classes.appendChild(monitor);
classes.appendChild(number);
grade.appendChild(classes);
}
root.appendChild(grade);
}
doc.appendChild(root);
//下面的方法是写xml到.xml的文档
TransformerFactory tf = TransformerFactory.newInstance();
Transformer transformer = tf.newTransformer();//此实例可以用于处理来自不同源的 XML,并将转换输出写入各种接收器。
DOMSource source = new DOMSource(doc);//创建带有 DOM 节点的新输入源
transformer.setOutputProperty(OutputKeys.ENCODING, "GB2312");//设置转换中实际的输出属性
transformer.setOutputProperty(OutputKeys.INDENT, "yes");//设置转换中实际的输出属性
PrintWriter pw = new PrintWriter(new FileOutputStream("src/testDOM.xml"));
StreamResult result = new StreamResult(pw);//从字节流构造 StreamResult 充当转换结果的持有者,可以为 XML、纯文本、HTML 或某些其他格式的标记
transformer.transform(source, result);//将 XML Source 转换为 Result
}
}
运行之后的结果应该是:
<?xml version="1.0" encoding="GB2312"?>
<school>
<grade level="1">
<classes name="1">
<teacher>teacher2</teacher>
<monitor>stu2</monitor>
<number>2</number>
</classes>
<classes name="2">
<teacher>teacher3</teacher>
<monitor>stu3</monitor>
<number>4</number>
</classes>
</grade>
<grade level="2">
<classes name="1">
<teacher>teacher3</teacher>
<monitor>stu3</monitor>
<number>4</number>
</classes>
<classes name="2">
<teacher>teacher4</teacher>
<monitor>stu4</monitor>
<number>8</number>
</classes>
</grade>
<grade level="3">
<classes name="1">
<teacher>teacher4</teacher>
<monitor>stu4</monitor>
<number>6</number>
</classes>
<classes name="2">
<teacher>teacher5</teacher>
<monitor>stu5</monitor>
<number>12</number>
</classes>
</grade>
</school>
分享到:
相关推荐
Java与XML数据绑定是将Java对象与XML文档之间的映射关系进行自动化处理的一种技术,它极大地简化了在Java应用中处理XML数据的工作流程。在Java世界中,JAXB(Java Architecture for XML Binding)是Java EE平台的一...
Java和XML数据绑定是将XML文档中的数据与Java对象模型之间建立映射关系的技术,使得开发者可以方便地在XML和Java对象之间进行数据交换。这项技术对于处理XML数据的Java应用来说至关重要,尤其是在Web服务、配置文件...
Java语言在处理XML数据时提供了丰富的API,这些API主要集中在`javax.xml`和`org.w3c.dom`等包中。XML(eXtensible Markup Language)是一种结构化数据存储格式,广泛应用于配置文件、数据交换和Web服务等领域。本文...
之后,可以通过遍历`Document`对象中的节点来读取XML数据。 具体步骤如下: 1. 创建`DocumentBuilderFactory`实例。 2. 使用`DocumentBuilderFactory`实例创建`DocumentBuilder`对象。 3. 使用`DocumentBuilder`...
XML(eXtensible Markup Language)则是一种结构化数据格式,广泛应用于数据交换、配置文件等场景。本篇文章将深入探讨如何在Java中利用HTTP协议发送XML报文,并通过实例和参数解析具体实现步骤。 首先,我们需要...
6. **XSLT(XSL Transformations)**:XSLT用于将XML文档转换为其他XML文档,或者HTML、文本等格式,实现XML数据的样式化显示。 7. **SOAP(Simple Object Access Protocol)**:SOAP是基于XML的网络协议,常用于...
Java作为一种广泛使用的后端编程语言,提供了多种方式来解析XML文档,使得处理多级嵌套的数据变得可能。本文将详细讲解如何在Java中解析XML,特别是针对多级结构的情况。 首先,Java提供了两种主要的API来处理XML:...
一、Java写XML文件 1. 使用DOM(Document Object Model)API: DOM是W3C推荐的一种处理XML的标准API,它将整个XML文档加载到内存中,形成一个树形结构。通过DOM,可以方便地创建、修改和遍历XML文档。 示例代码: ...
在Java编程语言中,XML(eXtensible Markup Language)是一种重要的数据交换格式,用于存储和传输结构化数据。XML文件具有自解释性,且独立于任何特定程序或硬件平台,这使得它在不同系统间交换数据时非常有用。本篇...
Java XML处理是软件开发中的重要一环,XML(Extensible Markup Language)作为一种可扩展标记语言,常用于数据交换、配置存储等场景。本篇将详细总结在Java中如何读取和写入XML文件,以及相关的工具和技术。 首先,...
DOM(Document Object Model)是一种在Java中处理XML的标准方法,它将XML文档转换为一棵对象树,使得我们可以方便地访问和修改XML数据。下面将详细阐述DOM模型、解析过程以及如何在Java中使用DOM进行XML读写。 DOM...
在IT领域,特别是Java开发中,处理XML数据是一项常见的任务。XML(可扩展标记语言)是一种用于存储和传输数据的标准格式,它具有良好的结构化特性,使得数据在不同系统之间交换变得容易。Java提供了多种库来解析和...
在Java编程环境中,XML(eXtensible Markup Language)是一种常用的数据交换格式,它具有良好的结构化和可读性,广泛应用于数据存储、配置文件、Web服务等场景。当需要与数据库交互并生成XML文件时,Java JDBC(Java...
本应用程序的主题聚焦于使用Java来处理数据,包括从数据库和XML文件中读取以及写入数据。这两种数据存储方式在现代软件系统中扮演着至关重要的角色。 首先,让我们深入了解一下数据库操作。Java通过JDBC(Java ...
书中的主题如下: *XML基础,包括DTD、命名空间(namespace)、XML Schema和数据格式转换 (Transformation) *SAX应用程序编程接口,包括处理器接口、过滤器接口和写出接口 *DOM应用程序编程接口,...
XML(eXtensible Markup Language)是一种用于标记数据的语言,广泛应用在数据交换、配置存储以及文档结构化描述等场景。本教程将详细讲解如何在Java环境中处理XML文件,包括读取和写入XML的基本操作。 一、XML简介...