[dom4j]生成xml

import java.io.FileOutputStream;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;

import org.dom4j.Document;
import org.dom4j.DocumentHelper;
import org.dom4j.Element;
import org.dom4j.io.OutputFormat;
import org.dom4j.io.XMLWriter;

/**
 *  使用DOM生成xml文档
 * @author victory黄海锋
 *
 */
public class writeXmldemon {
	public static void main(String[] args) {
		XMLWriter writer=null;
		List<emp> emplist
			=new ArrayList<emp>();
		emplist.add(
				new emp(1, "zhang", 22, "man", 3000)
			);
		emplist.add(
				new emp(2, "hai", 20, "man", 4000)
			);
		emplist.add(
				new emp(3, "feng", 19, "man", 5000)
			);
		/*
		 * 	将emplist集合钟的员工信息保存
		 * 	到myemp.xml文档中
		 * 
		 * 写出XML文档的大致步骤:
		 * 1:创建一个Document对象表示一个
		 *  	空白的文档
		 * 2:向Document对象中添加根元素
		 * 3:按照应当生成的xml文档的格式逐级
		 * 	向根元素添加子元素以形成xml
		 * 	文档格式
		 * 4:创建XmlWriter
		 * 5:通过XmlWriter将Document写出
		 */
		try {
			//step 1
			Document doc
				=DocumentHelper.createDocument();//方便,不用设置文档格式
			//2
			/*
			 * 	添加根标签<list>
			 */
			Element root
				=doc.addElement("list");//添加根元素,只能使用一次
			/*
			 * 	将emplist集合中的每一个员工信息以一个
			 * 	<emp>标签的形式保存到<list>标签中
			 */
			for (emp emp : emplist) {
				/*
				 * Element提供了相关方法
				 * Element addElement(String name)
				 * 	向当前标签中添加给定的名字的子标签
				 * 	并将其返回,以便继续操作
				 * Element addText(String text)
				 * 	向当前标签中添加文本信息,返回值为
				 * 	当前标签
				 * Element addAttribute(
				 * 		String name,String value)
				 * 	向当前标签中添加属性,返回值为当前标签
				 */
				Element empElem
					=root.addElement("emp");
				
				Element nameElem
					=empElem.addElement("name");
				nameElem.addText(emp.getName());
				
				Element ageElem
					=empElem.addElement("sex");
				ageElem.addText(
						Integer.toString(emp.getAge())
						);
				
				Element genderElem//一步到位
					=empElem.addElement("gender")
						.addText(emp.getGender()
								);
				
				Element salaryElem
					=empElem.addElement("salary")
						.addText(emp.getSalary()+"");
				
				empElem.addAttribute("id", emp.getId()+"");
			}
			writer=new XMLWriter(
					new FileOutputStream("myemp.xml"),
						OutputFormat.createPrettyPrint()//格式化,否则为一行
				);//另外一种方法Ctrl+Shift+F
			writer.write(doc);
			System.out.println("finished !");
		} catch (Exception e) {
			e.printStackTrace();
		}finally {
			if (writer !=null) {
				try {
					writer.close();//想一想为什么不可以放在try里面
				} catch (IOException e) {
					e.printStackTrace();
				}
			}
		}
	}
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值