dom4j創建和解析xml

1:引入dom4j.jar包

免費下載:  http://ishare.iask.sina.com.cn/f/8133067.html?fr


2:創建接口
package xml;
/**
*
* @author hongliang.dinghl
* 定義XML文檔建立與解析的接口
*/
public interface XmlDocument {
/**
* 建立XML文檔
* @param fileName 文件全路徑名稱
*/
public void createXml(String fileName);
/**
* 解析XML文檔
* @param fileName 文件全路徑名稱
*/
public void parserXml(String fileName);
}
3:完成實現類
package xml;
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.SAXReader;
import org.dom4j.io.XMLWriter;
/**
 *
 * @author hongliang.dinghl Dom4j 生成XML文檔與解析XML文檔
 */
public class Dom4jDemo implements XmlDocument {
    public void createXml(String fileName) {
        Document document = DocumentHelper.createDocument();
        Element employees = document.addElement("employees");
        Element employee = employees.addElement("employee");
        Element name = employee.addElement("name");
        name.setText("ddvip");
        Element sex = employee.addElement("sex");
        sex.setText("m");
        Element age = employee.addElement("age");
        age.setText("29");
        try {
            Writer fileWriter = new FileWriter(fileName);
            XMLWriter xmlWriter = new XMLWriter(fileWriter);
            xmlWriter.write(document);
            xmlWriter.close();
        } catch (IOException e) {
            System.out.println(e.getMessage());
        }
    }
    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());
        }
        System.out.println("dom4j parserXml");
    }
}

4:在指定的盤符下創建指定的xml文件(這裏我採用的是回寫文件的方法,可以換成文件創建的方法,就是說如果所有回寫的xml不存在那麼就創建xml在回寫內容。)

當指定文件不存在時創建文件:

FileOutputStream fileOutputStream = new FileOutputStream(fileName);

OutputStreamWriter outputStreamWriter = new OutputStreamWriter(fileOutputStream,"UTF-8");

OutputFormat fmt = OutputFormat.createPrettyPrint();

fmt.setEncoding("utf-8");

XMLWriter writer = new XMLWriter(outputStreamWriter,fmt);

writer.write(document);

writer.close();



5:構建測試類
package xml;
public class TestMain {
                                  
    XmlDocument xmlEbi = new Dom4jDemo();
    public void testCreate(){
        xmlEbi.createXml("E:/xml/create.xml");
    }
    public void testParser(){
        xmlEbi.parserXml("E:/xml/create.xml");
    }
    public static void main(String[] args) {
        TestMain tm = new TestMain();
        tm.testCreate();
        tm.testParser();
    }
}


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章