JavaEE XML DOM创建之DOM4J
DOM4J创建xml文档
@author ixenos
1 写出内容到xml文档
XMLWriter writer = new XMLWriter(OutputStream, OutputForamt)
wirter.write(Document);
OutputFormat format = OutputFormat.createPrettyPrint();
format.setEncoding("GBK");
// 生成xml文件
File file = new File("rssnews.xml");
XMLWriter writer = new XMLWriter(new FileOutputStream(file), format);
//设置是否转义,默认值是true,代表转义
writer.setEscapeText(false);
writer.write(document);
writer.close();
2 修改xml文档的API
增加:
DocumentHelper.createDocument() 增加文档
addElement("名称") 增加标签
addAttribute("名称",“值”) 增加属性
修改:
Attribute.setValue("值") 修改属性值
//addAttribute为标签添加属性和属性值。根据XML约定,若value为null,则attr属性不存在,这可用于删除属性
Element.addAtribute("同名的属性名","值") 修改同名的属性值
Element.setText("内容") 修改文本内容
删除
Element.detach(); 删除标签
Attribute.detach(); 删除属性
示例
package com.ixenos.dom4j; import java.io.FileOutputStream; import org.dom4j.Document;
import org.dom4j.DocumentHelper;
import org.dom4j.Element;
import org.dom4j.io.OutputFormat;
import org.dom4j.io.XMLWriter; /**
* 使用DOM4J的API生成XML文件
*
* @author ixenos
*
*/
public class CreateXML { /**
* 封装DOM树
*
* @param file
* @throws Exception
*/
public Document getDOM() throws Exception {
// 生成一个空的Document对象
Document doc = DocumentHelper.createDocument(); // 手动装入标签、属性、文本
// 根标签
Element rootE = doc.addElement("Students"); // 第一个子标签
Element firE = rootE.addElement("Student");
firE.addAttribute("id", "1");
// 第一个子标签的子
firE.addElement("name").addText("张三");
firE.addElement("gender").addText("男");
firE.addElement("grade").addText("物联网一般");
firE.addElement("address").addText("广州白云"); // 第二个子标签
Element secE = rootE.addElement("Student");
secE.addAttribute("id", "2");
// 第一个子标签的子
secE.addElement("name").addText("李四");
secE.addElement("gender").addText("女");
secE.addElement("grade").addText("物联网二班");
secE.addElement("address").addText("广州海珠");
return doc;
} /**
* 将DOM树输出为XML文件
*
* @throws Exception
*/
public static void writeXML(Document doc, Boolean pretty, String encoding) throws Exception {
// 创建文件输出流,定向所要生成的文件路径
FileOutputStream out = new FileOutputStream("demo.xml"); // 创建OutputFormat,作为写到XML的格式化选项
// 为了调试可视化,我们需要OutputFormat.createPrettyPrint()
// 为了传输的高效化,我们需要Outputormat.create.createCompactFormat()
OutputFormat format = null;
if (pretty) {
format = OutputFormat.createPrettyPrint();
} else {
format = OutputFormat.createCompactFormat();
}
// 设置XML文件指定编码
format.setEncoding(encoding); // 创建XMLWriter,将DOM树写到XML中,注意格式化问题
XMLWriter writer = new XMLWriter(out, format);
writer.write(doc);
writer.close();
} public static void main(String[] args) throws Exception {
CreateXML demo = new CreateXML();
//生成DOM树
Document doc = demo.getDOM();
//根据DOM树生成XML
writeXML(doc, true, "utf-8");
} }
<?xml version="1.0" encoding="utf-8"?> <Students>
<Student id="1">
<name>张三</name>
<gender>男</gender>
<grade>物联网一般</grade>
<address>广州白云</address>
</Student>
<Student id="2">
<name>李四</name>
<gender>女</gender>
<grade>物联网二班</grade>
<address>广州海珠</address>
</Student>
</Students>
JavaEE XML DOM创建之DOM4J的更多相关文章
- JavaEE XML DOM解析之DOM4J
DOM解析之DOM4J @author ixenos DOM4J常用API 读取xml文档: Document doc = new SAXReader().read("xml文件" ...
- JavaEE XML DOM创建
DOM创建XML @author ixenos 1.思路: 先封装构建一颗DOM树,然后将DOM树转换成XML文件 2.三种写DOM树到XML文件的方式: 1)使用DOM(或DOM4J.JDOM) 2 ...
- JavaEE XML DOM解析
DOM解析XML @author ixenos XML解析方式(原理) a) DOM 解析树 b) SAX 流事件 DOM解析对应主流工具 i. DOM(官方) i ...
- JavaEE XML StAX创建
StAX创建XML文档 @author ixenos 1. 如果通过DOM树来创建XML文件时,发现这个DOM树没有其他用途,那么这种方式就不是很高效,这时我们可以使用StAX API直接将XML树写 ...
- PHP中利用DOM创建xml文档
DOM创建xml文档 用dom创建如下文档: <booklist> <book id="1"> <title>天龙八部</title> ...
- 使用DOM创建xml文件
使用DOM创建xml文件 创建xml的代码如下: public class CreateXML { public static void main(String[] args) { DocumentB ...
- 打造完美的xml技术解决方案(dom4j/xstream)
转: XML 技术是随着 Java 的发展而发展起来的.在 XML 出现之前对于简单的数据格式通常是存储在 ini 配置文件等文本文件中,复杂的格式则采用自定义的文件格式,因此对于每种文件格式都要有专 ...
- XML学习笔记(2)--dom4j操作XML
1. 介绍(四种方式的比较这部分转载自:http://www.blogjava.net/xcp/archive/2010/02/12/312617.html) 1)DOM(JAXP Crimson解析 ...
- JavaEE XML XPath
JavaEE XML XPath @author ixenos XPath技术 1 引入 问题:当使用dom4j查询比较深的层次结构的节点(标签,属性,文本),比较麻烦!!!需要遍历DOM树的众多节点 ...
随机推荐
- Android服务开发经验——优雅地活着
大多数的Android应用开发都会将注意力集中在界面功能上,只有少数应用会需要一个Service,尤其是一个长期运行的Service,去进行后台联网.环境检测.媒体播放等功能.Android环境下的S ...
- 【推荐】30个Matlab视频教程合集(含GUI视频教程)下载
自己收集别人网盘上存的资源,分享一下[点击文件名可得到下载地址] Matlab 7.8 基础视频教程 实例1 数据传递和多窗口编程_avi.zip 205.11 MB Matlab ...
- using和yield return
C#中的using和yield return混合使用 最近写代码为了为了省事儿用了几个yield return,因为我不想New一个List<T>或者T[]对象再往里放元素,就直接返回IE ...
- C++一些注意点之转换操作符
转换操作符定义 类可通过一个实参调用的非explicit构造函数定义一个隐式转换(其他类型—>类类型).当提供了实参类型的对象而需要一个类类型的对象时,编译器将使用该转换.这种构造函数定义了到类 ...
- linux extract rar files
Extract rar-archives If you need to extract rar files in Linux, you have to download and install unr ...
- Indenting source code
Artistic Style 1.15.3 A Free , Fast and Small Automatic Formatterfor C , C++ , C# , Java Source Code ...
- 企业架构研究总结(38)——TOGAF架构能力框架之架构能力建设和架构治理
为了确保架构功能在企业中能够被成功地运用,企业需要通过建立适当的组织结构.流程.角色.责任和技能来实现其自身的企业架构能力,而这也正是TOGAF的架构能力框架(Architecture Capabil ...
- .net mvc页面UI之Jquery博客日历控件
摘要:最近在做一个博客系统,其他需要用到博客日历控件,网上搜索了很多资料,其中大部分都是javascript的,经过总结使用jquery实现了博客日历效果.代码如下: 原文链接转载请注明:http:/ ...
- 把项目做成jar包
方法一.在eclipse3.1中把项目做成jar包步骤. 打包前的工作. 在项目下创建一个文件夹,名为META-INF,再在其下创建文件MANIFEST.MF 编辑的内容如下: Manifest-Ve ...
- 读取同一文件夹下多个txt文件中的特定内容并做统计
读取同一文件夹下多个txt文件中的特定内容并做统计 有网友在问,C#读取同一文件夹下多个txt文件中的特定内容,并把各个文本的数据做统计. 昨晚Insus.NET抽上些少时间,来实现此问题,加强自身的 ...