通过XmlWriter写入XML

包路径:(需要导入包:dom4j-1.6.1.jar和jaxen-1.2.0-atlassian-2.jar)

EMP.java代码内容

 1 package xmlDemo;
 2
 3 public class EMP {
 4     int id;
 5     String name;
 6     int age;
 7     String gender;
 8     double salary;
 9
10     public EMP(int id, String name, int age, String gender, double salary) {
11         this.id = id;
12         this.name = name;
13         this.age = age;
14         this.gender = gender;
15         this.salary = salary;
16     }
17
18 }

XmlWriter.java代码内容

 1 package xmlDemo;
 2
 3 import java.io.FileNotFoundException;
 4 import java.io.FileOutputStream;
 5 import java.io.IOException;
 6 import java.io.UnsupportedEncodingException;
 7 import java.util.ArrayList;
 8 import java.util.List;
 9
10 import org.dom4j.Document;
11 import org.dom4j.DocumentHelper;
12 import org.dom4j.Element;
13 import org.dom4j.io.OutputFormat;
14 import org.dom4j.io.XMLWriter;
15
16 public class XmlWriter {
17     public static void main(String[] args) {
18         List<EMP> list = new ArrayList<EMP>();
19         list.add(new EMP(1, "张三", 23, "男", 20000));
20         list.add(new EMP(2, "李四", 24, "男", 21000));
21         list.add(new EMP(3, "王五", 25, "男", 22000));
22         list.add(new EMP(4, "张三", 26, "男", 23000));
23         list.add(new EMP(5, "张三", 27, "男", 24000));
24         // 创建文档对象
25         Document doc = DocumentHelper.createDocument();
26         // 创建根节点
27         Element root = doc.addElement("emps");
28         for (EMP emp : list) {
29             // 根据集合里面的emp添加emp节点
30             Element empElement = root.addElement("emp");
31             // 添加员工的属性节点,并为属性节点=附文本值
32             empElement.addElement("id").setText(Integer.toString(emp.id));
33             empElement.addElement("age").setText(Integer.toString(emp.age));
34             empElement.addElement("name").setText(emp.name);
35             empElement.addElement("gender").setText(emp.gender);
36             empElement.addElement("salary").setText(Double.toString(emp.salary));
37             // 把id当属性添加
38             empElement.addAttribute("id", Integer.toString(emp.id));
39         }
40         // 设置XML文档格式
41         OutputFormat outputFormat = OutputFormat.createPrettyPrint();
42         // 设置XML编码方式,即是用指定的编码方式保存XML文档到字符串(String),这里也可以指定为GBK或是ISO8859-1
43         outputFormat.setEncoding("UTF-8");
44         // outputFormat.setSuppressDeclaration(true); //是否生产xml头
45         outputFormat.setIndent(true); // 设置是否缩进
46         outputFormat.setIndent("    "); // 以四个空格方式实现缩进
47         outputFormat.setNewlines(true); // 设置是否换行
48         XMLWriter writer = null;
49         try {
50             writer = new XMLWriter(outputFormat);
51         } catch (UnsupportedEncodingException e1) {
52             e1.printStackTrace();
53         }
54         try {
55             FileOutputStream fos = new FileOutputStream("emps.xml");
56             writer.setOutputStream(fos);
57             writer.write(doc);
58             writer.close();
59             System.out.println("写入完毕!");
60         } catch (UnsupportedEncodingException e) {
61             e.printStackTrace();
62         } catch (FileNotFoundException e) {
63             e.printStackTrace();
64         } catch (IOException e) {
65             e.printStackTrace();
66         }
67     }
68 }

写入完成的emps.xml

 1 <?xml version="1.0" encoding="UTF-8"?>
 2
 3 <emps>
 4     <emp id="1">
 5         <id>1</id>
 6         <age>23</age>
 7         <name>张三</name>
 8         <gender>男</gender>
 9         <salary>20000.0</salary>
10     </emp>
11     <emp id="2">
12         <id>2</id>
13         <age>24</age>
14         <name>李四</name>
15         <gender>男</gender>
16         <salary>21000.0</salary>
17     </emp>
18     <emp id="3">
19         <id>3</id>
20         <age>25</age>
21         <name>王五</name>
22         <gender>男</gender>
23         <salary>22000.0</salary>
24     </emp>
25     <emp id="4">
26         <id>4</id>
27         <age>26</age>
28         <name>张三</name>
29         <gender>男</gender>
30         <salary>23000.0</salary>
31     </emp>
32     <emp id="5">
33         <id>5</id>
34         <age>27</age>
35         <name>张三</name>
36         <gender>男</gender>
37         <salary>24000.0</salary>
38     </emp>
39 </emps>
时间: 2024-10-14 15:31:30

通过XmlWriter写入XML的相关文章

[JavaWeb基础] 031.dom4j写入xml的方法

上一篇我们讲述了dom4j读取xml的4种方法,甚是精彩,那么怎么样写入xml呢?我们直接看下源码实现. public static void main(String[] args) throws Exception { // 创建文档 Document document = DocumentHelper.createDocument(); // 设置编码 document.setXMLEncoding("GBK"); // 创建根节点 Element root = document.

当xml中存在命名空间,dom4j解析以及写入xml文档时的乱码问题

最近公司项目开发中需要通过前台用户界面进行客户业务系统的部署(提供界面化操作,减少运维工作的难度),通过修改web.xml进行设置各个项目不同的信息配置. 开发过程中遇到2种问题,同时将解决方案备注上,以方便日后查看. 问题一:当xml中存在命名空间,三种处理办法(dom4j) 问题二:文件保存之后总是提示中文乱码问题 针对上面2个问题的解决方案进行汇总,解决方法主要还是来自于其他网络同行的博客. 第一个 问题主要参照 博客http://blog.sina.com.cn/s/blog_5cef6

C#读取和写入XML文件

关于xml是属于一个比较重要的东西,在平时开发的过程中,这块内容最主要的是要掌握XML内容的读取和写入操作. 一.什么是XML? XML 指可扩展标记语言(EXtensible Markup Language) XML 是一种标记语言,很类似HTML XML 的设计宗旨是传输数据,而非显示数据 XML 标签没有被预定义,您需要自行定义标签 XML 被设计为具有自我描述性 XML 是W3C 的推荐标准 二.XML语法: 1.一个XML包含以下几部分内容: 文档声明,元素,属性,注释,CDATA(特

使用XmlWriter写Xml

使用XmlWriter写Xml 假定创建了XmlWriter的实例变量xmlWriter,下文中将使用此实例变量写Xml 1.如何使用XmlWriter写Xml文档声明 ? // WriteStartDocument方法可以接受一个bool参数(表示standalone,是否为独立文档)或者不指定参数standalone保持默认值 xmlWriter.WriteStartDocument(false|true); 注意在使用WriteStartDocument方法后最好调用xmlWrite.Wr

将DataSet中的数据写入XML

protected void Button1_Click(object sender, EventArgs e) { string conStr = ConfigurationManager.ConnectionStrings["lianxiConnectionString"].ConnectionString; using (SqlConnection conn=new SqlConnection(conStr)) { conn.Open(); using (SqlCommand c

C# 创建,读取,写入 XML文件1

XML格式如下 <?xml version="1.0" encoding="utf-8"?> <Advertisements> <Ad> <ImageUrl>001.jpg</ImageUrl> <NavigateUrl>001.aspx</NavigateUrl> <Impressions>10</Impressions> <Keyword>gu

C#操作Xml:使用XmlWriter写Xml

假定创建了XmlWriter的实例变量xmlWriter,下文中将使用此实例变量写Xml 1.如何使用XmlWriter写Xml文档声明 ? // WriteStartDocument方法可以接受一个bool参数(表示standalone,是否为独立文档)或者不指定参数standalone保持默认值 xmlWriter.WriteStartDocument(false|true); 注意在使用WriteStartDocument方法后最好调用xmlWrite.WriteEndDocument()

C# 创建,读取,写入 XML文件

XML格式如下 <?xml version="1.0" encoding="utf-8"?><Advertisements>  <Ad>    <ImageUrl>001.jpg</ImageUrl>    <NavigateUrl>001.aspx</NavigateUrl>    <Impressions>10</Impressions>    <K

通过文件流写入XML数据

通过文件流给已经存在的XML文件添加节点时,会通过文档对象加载流数据.在文档对象处理完数据之后,重新把数据写入XML文件时,因为默认是流结尾写入,那么会在XML文件中出现重复的数据.为了解决这个问题需要把流的长度设置为0,来重新写入XML文件. using(FileStream fs = new FileStream(GlobalParams.XmlFileName,FileMode.Open,FileAccess.ReadWrite)) { try { XDocument doc = XDoc