zoukankan      html  css  js  c++  java
  • 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();
      }
     }

    }

  • 相关阅读:
    遗传算法(Genetic Algorithm, GA)及MATLAB实现
    CCF CSP 201809-2 买菜
    PAT (Basic Level) Practice (中文)1008 数组元素循环右移问题 (20 分)
    PAT (Basic Level) Practice (中文)1006 换个格式输出整数 (15 分)
    PAT (Basic Level) Practice (中文)1004 成绩排名 (20 分)
    PAT (Basic Level) Practice (中文)1002 写出这个数 (20 分)
    PAT (Advanced Level) Practice 1001 A+B Format (20 分)
    BP神经网络(原理及MATLAB实现)
    问题 1676: 算法2-8~2-11:链表的基本操作
    问题 1744: 畅通工程 (并查集)
  • 原文地址:https://www.cnblogs.com/babi/p/3488677.html
Copyright © 2011-2022 走看看