- package com.dheaven.mip.item;
- import java.io.File;
- import java.io.FileWriter;
- import java.io.IOException;
- import java.io.Writer;
- import java.util.Iterator;
- import org.dom4j.Document;
- import org.dom4j.DocumentException;
- import org.dom4j.DocumentHelper;
- import org.dom4j.Element;
- import org.dom4j.io.OutputFormat;
- import org.dom4j.io.SAXReader;
- import org.dom4j.io.XMLWriter;
- public class Dom4jDemo implements XmlDocument {
- /* (non-Javadoc)写入xml
- * @see com.dheaven.mip.item.XmlDocument#createXml(java.lang.String)
- */
- public void createXml(String fileName) {
- //创建document对象
- Document document=DocumentHelper.createDocument();
- //为document对象添加一级节点
- Element students=document.addElement("students");
- //在一级节点下添加二级节点
- Element student=students.addElement("student");
- Element name=student.addElement("name");
- name.setText("刘德华");
- Element sex=student.addElement("sex");
- sex.setText("男");
- try {
- /*直接通过write方法输出,如下,此时输出的xml文件中为默认的UTF-8编码,没有格式,空格也没有去除,实际上就是一个字符串;*/
- Writer fileWriter=new FileWriter(fileName);
- // XMLWriter xmlWriter=new XMLWriter(fileWriter);
- /* 用XMLWriter类中的write方法,此时可以自行设置输出格式,比如紧凑型、缩减型:此时输出的xml文件中为gb2312编码,缩减型格式,但是多余的空格已经被清除:*/
- OutputFormat format = OutputFormat.createPrettyPrint();//缩减型格式
- //OutputFormat format = OutputFormat.createCompactFormat();//紧凑型格式
- format.setEncoding("gb2312");//设置编码
- //format.setTrimText(false);//设置text中是否要删除其中多余的空格
- XMLWriter xmlWriter=new XMLWriter(fileWriter,format);
- /*如果想要对xml文件的输出格式进行设置,就必须用XMLWriter类,但是我们又需要保留其中的空格,此时我们就需要对format进行设置,也就是加上一句format.setTrimText(false);
- 这样就可以既保持xml文件的输出格式,也可以保留其中的空格;element中attribute中的值如果有空格的话在任何情况下是都不会去除空格的;*/
- xmlWriter.write(document);
- xmlWriter.close();
- } catch (IOException e) {
- e.printStackTrace();
- }
- }
- /* (non-Javadoc)解析xml文件
- * @see com.dheaven.mip.item.XmlDocument#parserXml(java.lang.String)
- */
- public void parserXml(String fileName) {
- File inputXml=new File(fileName);
- SAXReader saxReader = new SAXReader();
- try {
- Document document = saxReader.read(inputXml);
- Element employees=document.getRootElement();
- for(Iterator i = employees.elementIterator(); i.hasNext();){
- Element employee = (Element) i.next();
- for(Iterator j = employee.elementIterator(); j.hasNext();){
- Element node=(Element) j.next();
- System.out.println(node.getName()+":"+node.getText());
- }
- }
- } catch (DocumentException e) {
- System.out.println(e.getMessage());
- }
- }
- }
TEST:
- package com.dheaven.mip.item;
- public class xmltest {
- public static void main(String[] args) {
- Dom4jDemo domxml=new Dom4jDemo();
- //写入
- domxml.createXml("D:/domxml.xml");
- //解析
- domxml.parserXml("D:/domxml.xml");
- }
- }