<?xml version="1.0" encoding="GBK"?>
<books>
<!--—An XML Example--><?target text?>
<bookone title="XML study" publisher="angellove workers">
<article level="high" date="December-2007">
<title>Java configuration with XML</title>
<author>
<firstname>angel</firstname>
<lastname>free</lastname>
</author>
</article>
</bookone>
</books>
import org.dom4j.Document;
import org.dom4j.DocumentHelper;
import org.dom4j.io.OutputFormat;
import org.dom4j.Element;
import org.dom4j.io.XMLWriter;
import java.io.*;
import org.dom4j.Attribute;
import org.dom4j.DocumentException;
import org.dom4j.io.SAXReader;
import java.util.List;
import java.util.Iterator;
import org.dom4j.QName;
public class dom4j {
public void readAttribute(String filename, String xpath, String attribute) {
SAXReader saxReader = new SAXReader();
try {
Document document = saxReader.read(new File(filename));
List list = document.selectNodes(xpath);
Iterator iter = list.iterator();
while (iter.hasNext()) {
Element element = (Element) iter.next();
}
} catch (DocumentException e) {
e.printStackTrace();
}
}
public static void main(String[] argv) {
dom4j ptree = new dom4j();
ptree.modifyXML();
ptree.mymodifXML(new File("books.xml.xml") );
}
// 创建一个xml文件
public void changeXML() {
Document document = DocumentHelper.createDocument();// 创建一个xml document对象
Element books = document.addElement("books");// 创建根节点元素
// 给books添加注释
books.addComment("—An XML Example");
// 使用addProcessingInstruction()方法增加一个处理指令
books.addProcessingInstruction("target", "text");
// 在当前元素后增加一个子元素
Element bookone = books.addElement("bookone");
// 设置当前元素的属性
bookone.addAttribute("title", "XML study");
bookone.addAttribute("publisher", "angellove workers");
Element article = bookone.addElement("article");
article.addAttribute("level", "high");
article.addAttribute("date", "December-2007");
Element titleElement = article.addElement("title");
// 设置当前元素的文本值,即是内容
titleElement.setText("Java configuration with XML");
Element authorElement = article.addElement("author");
Element firstNameElement = authorElement.addElement("firstname");
firstNameElement.setText("angel");
Element lastNameElement = authorElement.addElement("lastname");
lastNameElement.setText("free");
// XML 声明 <?xml version="1.0" encoding="UTF-8"?> 自动添加到 XML 文档中。
try {
// 创建一个xml写入流,将生成的xml文件写入指定的文件中
// 使用优雅的方式写入(一共有三种方式:普通方式,优雅方式和紧凑方式)
//紧凑方式写入format = OutputFormat.createCompactFormat();
OutputFormat format = OutputFormat.createPrettyPrint();
format.setEncoding("GBK");
XMLWriter output = new XMLWriter(
new FileWriter(new File("books.xml")), format);
output.write(document);
output.close();
}
catch (IOException e) {
System.out.println(e.getMessage());
}
}
// 使用XPath表达式的查询
public void modifXML(File inputXml) {
try {//创建一个读取xml文件的对象
SAXReader saxReader = new SAXReader();//读取并获得xml文档
Document document = saxReader.read(inputXml);
//使用XPATH表达式从article元素中获得level节点列表
List list = document.selectNodes("//article/@level");
//创建一个迭代器.
Iterator iter = list.iterator();
while (iter.hasNext()) {
//获得level节点的属性
Attribute attribute = (Attribute) iter.next();
if (attribute.getValue().equals("high"))
//设置属性的值
attribute.setValue("low");
}
list = document.selectNodes("//article/@date");
iter = list.iterator();
while (iter.hasNext()) {
Attribute attribute = (Attribute) iter.next();
if (attribute.getValue().equals("December-2007"))
attribute.setValue("October-2006");
}
list = document.selectNodes("//article");
iter = list.iterator();
while (iter.hasNext()) {
Element element = (Element) iter.next();
Iterator iterator = element.elementIterator("title");
while (iterator.hasNext()) {
Element titleElement = (Element) iterator.next();
//获得属性的文本.
if (titleElement.getText().equals("Java configuration with XML"))
//重新设置属性的文本
titleElement.setText("good good study,day day up");
}
}
list = document.selectNodes("//article/author");
iter = list.iterator();
while (iter.hasNext()) {
Element element = (Element) iter.next();
Iterator iterator = element.elementIterator("firstname");
while (iterator.hasNext()) {
Element firstNameElement = (Element) iterator.next();
if (firstNameElement.getText().equals("angel"))
firstNameElement.setText("god");
}
}
list = document.selectNodes("//article/author");
iter = list.iterator();
while (iter.hasNext()) {
Element element = (Element) iter.next();
Iterator iterator = element.elementIterator("lastname");
while (iterator.hasNext()) {
Element lastNameElement = (Element) iterator.next();
if (lastNameElement.getText().equals("free"))
lastNameElement.setText("dark");
}
}
OutputFormat format = OutputFormat.createPrettyPrint();
format.setEncoding("GBK");
XMLWriter output = new XMLWriter(new FileWriter(new File("modifyBooks.xml")), format);
output.write(document);
output.close();
}catch (DocumentException e) {
}catch (IOException e) {
}
}
//访问其中某一特定节点
public void modifyXML() {
try {
SAXReader sreader = new SAXReader();
Document document = sreader.read(new File("E:\\eagle\\jms\\exc1.xml")); // E:\\eagle\\jms\\exc1.xml
Element element = document.getRootElement();
//获得根元素的名字
String rootname = element.getName();
String textname = element.getText();
System.out.println("rootname=" + rootname);
//获得指定QName,prefix,uri
QName qname = element.getQName();
//获得当前元素指定属性的值
List list = element.elements();
Iterator iterator = list.iterator();
while (iterator.hasNext()) {
Element node = (Element) iterator.next();
if ("InfStatus1".equals(node.attributeValue("RequestObject"))) {
//重新设置当前元素的名字
node.setName("InfEXC");
}
if ("Head".equals(node.getName())) {
node.setName("Head");
} else {
iterator = node.elementIterator();
}
}
OutputFormat format = OutputFormat.createPrettyPrint();
format.setEncoding("utf-8");
XMLWriter output = new XMLWriter(new FileWriter(new File("E:\\eagle\\jms\\modifyExc.xml")), format);
output.write(document);
output.close();
} catch (DocumentException e) {
} catch (IOException e) {
}
}
}
分享到:
相关推荐
JAVA中生成xml文件到指定路径和上传到ftp服务器到指定路径的方法。
在Java开发中,XML(可扩展...总结起来,Java生成XML和XSD涉及到XML和XSD的基本概念,以及使用JAXB等Java库进行XML操作的技术。在实际项目中,理解并熟练运用这些知识对于处理结构化数据的序列化和反序列化至关重要。
java生成xml文件的时候如何控制xml的缩进格式.pdf
在Java编程中,生成XML文件是一项常见的任务,特别是在数据存储、配置管理或数据交换的应用场景。XML(eXtensible Markup Language)是一种结构化数据格式,具有良好的可读性和易于解析的特点。本教程将深入讲解如何...
在Java编程中,生成XML文件并发送报文是一项常见的任务,尤其在系统间的数据交换、API调用或者网络通信中。XML(eXtensible Markup Language)是一种结构化数据表示语言,具有良好的可读性和可扩展性,是数据传输的...
Java语言在处理XML文件时,提供了丰富的API和库,使得我们可以轻松地读取、解析、修改和生成XML文档。在给定的场景中,我们主要关注如何使用Java来读取XML文件并根据需求生成新的文件。以下是关于这个主题的详细说明...
本篇文章将深入探讨如何在Java中读取和写入XML文件,通过具体的例子来帮助理解这一过程。 首先,我们需要引入处理XML文件的Java API,即Java的DOM(Document Object Model)和SAX(Simple API for XML)解析器。DOM...
本篇文章将深入探讨如何使用Java来生成XML文件,并结合数据库操作进行数据提取。 首先,我们需要了解XML的基本结构。XML文件由一系列元素组成,每个元素都有开始标签(如`<element>`)和结束标签(如`</element>`)...
使用java把数据库数据导出生成xml文件 使用java把数据库数据导出生成xml文件
用java生成xml文档.DocumentBuilderFactory DocumentBuilder Document doc;至此可以用doc来操作xml文档了
### Java操作XML文件读写与树型菜单生成详解 #### 一、背景介绍 在现代软件开发中,XML(Extensible Markup Language)被广泛应用于数据交换、配置文件管理以及多种跨平台的应用场景中。Java作为一种重要的后端开发...
本篇将深入探讨如何使用Java来自动生成Java类和XML文件,以及它在实际开发中的应用。 首先,我们要理解Java类和XML文件在软件工程中的角色。Java类是面向对象编程的基础,用于封装数据和行为,构建程序的结构。而...
### JAVA生成XML文件知识点 #### 一、简介 在Java编程中,生成XML文件是一种常见的需求,尤其是在数据交换、配置管理或系统间通信时。本文档通过一个具体的示例介绍了如何使用Java语言来生成XML文件,并对代码进行...
Java 生成MyBatis的XML文件和实体类是一项常见的任务,尤其在自动化构建或持续集成过程中,能够大大提升开发效率。这个项目利用Java的SWT(Standard Widget Toolkit)库进行图形用户界面的设计,使得开发者可以通过...
一年前写过一个百万级别数据库数据生成配置xml文件的程序,程序目的是用来把数据库里面的数据生成xml文件.程序可以配置多少文件生成到一个文件中去。程序刚开始设计的时候说的是最多百万级别数据,最多50W数据生成到...
5. **生成序列化和反序列化代码**:为了方便XML数据和Java对象之间的转换,工具还会生成解析XML和生成XML的代码,通常是基于JAXB(Java Architecture for XML Binding)或其他类似库。 除了XSD转Java,有些工具还...
Java解析和生成XML的知识点主要涵盖了使用JAXB(Java Architecture for XML Binding)框架来实现Java对象与XML(可扩展标记语言)之间的数据转换。JAXB提供了一种便捷的方式,通过注解(Annotation)来实现这一过程...
MySQL数据库自动生成XML文件是一项实用的技术,它可以帮助开发者快速地将数据库中的数据转换为XML格式,便于数据交换、存储或进一步处理。这项技术通常结合代码生成工具,如MyBatis的Generator,能够自动化生成DAO...
本文将围绕“格式化XML字符串并生成XML文件”这一主题展开,结合提供的标签“源码”和“工具”,探讨如何通过Java编程实现这一功能。 首先,我们有两个Java源代码文件,即`XMLFileUtil.java`和`XMLFormatUtil.java`...