dom4j是一个性能非常不错的解析xml的开源框架.其解析性能高于sun提供的domAPI,而且使用起来也非常方便.值得学习!
下面,经创建ibm.xml这样一个xml文件为例,总结一下,怎么用dom4j创建一个xml文件.
ibm.xml代码如下:
- <?xml version="1.0" encoding="UTF-8"?>
- <catalog>
- <!--An XML Catalog-->
- <?target instruction?>
- <journal title="XML Zone" publisher="IBM developerWorks">
- <article level="Intermediate" date="December-2001">
- <title>Java configuration with XML Schema</title>
- <author>
- <firstname>Marcello</firstname>
- <lastname>Vitaletti</lastname>
- </author>
- </article>
- </journal>
- </catalog>
新建一个测试类,XMLCreater,代码如下:
- package org.james.dom4j;
- import java.io.File;
- import java.io.FileWriter;
- import java.io.IOException;
- import org.dom4j.Document;
- import org.dom4j.DocumentHelper;
- import org.dom4j.Element;
- import org.dom4j.io.XMLWriter;
- public class XMLCreater {
- /**
- * @param args
- */
- public static void main(String[] args) {
- Document doc=DocumentHelper.createDocument();
- Element elemCatalog = doc.addElement("catalog");//创建根节点
- elemCatalog.addComment("An XML Catalog");//添回注释
- elemCatalog.addProcessingInstruction("target", "text");//添加处理指令
- Element elemJournal = elemCatalog.addElement("journal");//为elemCatalog元素添加子节点journal
- elemJournal.addAttribute("title", "XML Zone");//为journal设置属性title
- elemJournal.addAttribute("publisher","IBM developerWorks");
- Element elemArticle = elemJournal.addElement("article");
- elemArticle.addAttribute("level", "Intermediate");
- elemArticle.addAttribute("date", "December-2001");
- Element elemTitle = elemArticle.addElement("title");
- elemTitle.setText("Java configuration with XML Schema");//添加文本节点
- Element elemAuthor = elemArticle.addElement("author");
- Element elemFirstName = elemAuthor.addElement("firstname");
- Element elemLastName = elemAuthor.addElement("lastname");
- elemFirstName.setText("Marcello");
- elemLastName.setText("Vitaletti");
- XMLWriter xmlWriter=null;
- try {
- xmlWriter = new XMLWriter(new FileWriter(new File("E://ibm.xml")));
- xmlWriter.write(doc);
- } catch (IOException e) {
- e.printStackTrace();
- }finally{
- try {
- xmlWriter.close();
- } catch (IOException e) {
- e.printStackTrace();
- }
- }
- }
- }