- 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");
- }
- }