dom4j创建XML文件

dom4j创建XML文件

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

/**
 * @author Dong 2013-12-23 ©Copyright 2013 dong
 */
public class Dom4j {

/**
  * 非法的 XML 字符必须被替换为实体引用
  * &lt; < 小于号
  * &gt; > 大于号
  * &amp; & 与(和)号
  * &apos; ' 单引号
  * &quot; " 双引号
  * <message>if salary < 1000 then</message>为了避免此类错误,需要把字符 "<" 替换为实体引用,就像这样: 
  * <message>if salary &lt; 1000 then</message>
  */
 public static void main(String[] args) {
  createXML();
 }

 public static void createXML() {

  Document document = DocumentHelper.createDocument();

  Element firstElement = document.addElement("FirstElement");

  firstElement.addComment("A sample XML file");// 添加注释
  firstElement.addCDATA("who am i CDATA");
  // 在标记CDATA下,所有的标记、实体引用都被忽略,而被XML处理程序一视同仁地当做字符数据看待,CDATA的形式如下:
  // <![CDATA[文本内容]]>
  // CDATA的文本内容中不能出现字符串“]]>”,另外,CDATA不能嵌套。

  firstElement.addProcessingInstruction("target", "text");

  Element secondElement = firstElement.addElement("SecondElement");

  secondElement.addAttribute("title", "Create XML");
  secondElement.addAttribute("publisher", "Dongxiang");
  secondElement.addAttribute("date", "2013-12-24 10:03:32");

  Element thirdElement = secondElement.addElement("ThirdElement");

  thirdElement.addAttribute("level", "Intermediate");
  thirdElement.addAttribute("date", "December-2013");

  Element forthElementA = thirdElement.addElement("ForthElementA");
  forthElementA.setText("简单的XML forthElement  A");

  Element forthElementB = thirdElement.addElement("ForthElementB");
  forthElementB.setText("与其并列 forthElement  B");

  Element forthElementC = thirdElement.addElement("ForthElementC");

  Element fifthElementA = forthElementC.addElement("fifthElementA");
  fifthElementA.setText("Head");
  Element fifthElementB = forthElementC.addElement("fifthElementB");
  fifthElementB.setText("Body");

  document.addDocType("firstElement", "what", "http://www.cnblogs.com/babi/");

  try {
//   下面format用来格式化输出到XML文件,观看的结构清晰
   OutputFormat format = new OutputFormat();
   format.setIndentSize(2);//缩进字符
   format.setNewlines(true);//换行
   format.setTrimText(false);
   format.setPadText(true);//填补
   format.setEncoding("UTF-8");//字符编码
   
//   XMLWriter output = new XMLWriter(new FileWriter(new File(
//     "Sample.xml")));//没用format进行格式化输出,XML文件结果显示为一行
   XMLWriter output = new XMLWriter(new FileWriter(new File(
     "Sample.xml")), format);
   output.write(document);
   output.close();
   System.out.println("create XML success!");
  } catch (IOException e) {
   e.printStackTrace();
  }
 }

}

posted @ 2013-12-24 11:12  babi  阅读(432)  评论(0编辑  收藏  举报