zoukankan      html  css  js  c++  java
  • JavaEE XML DOM创建之DOM4J

    DOM4J创建xml文档

     @author ixenos

                  1 写出内容到xml文档

                                        XMLWriter writer = new XMLWriter(OutputStream, OutputForamt)

                                        wirter.write(Document);

          

                OutputFormat format = OutputFormat.createPrettyPrint();

                format.setEncoding("GBK");

                // 生成xml文件

                File file = new File("rssnews.xml");

                XMLWriter writer = new XMLWriter(new FileOutputStream(file), format);

                //设置是否转义,默认值是true,代表转义

                writer.setEscapeText(false);

                writer.write(document);

                writer.close();

     

                  2 修改xml文档的API

                               增加:

                                                 DocumentHelper.createDocument()  增加文档

                                                 addElement("名称")  增加标签

                                                 addAttribute("名称",“值”)  增加属性

                               修改:

                                                 Attribute.setValue("值")  修改属性值

          //addAttribute为标签添加属性和属性值。根据XML约定,若value为null,则attr属性不存在,这可用于删除属性

                                                 Element.addAtribute("同名的属性名","值")  修改同名的属性值

                                                 Element.setText("内容")  修改文本内容

                               删除

                                                 Element.detach();  删除标签 

                                                 Attribute.detach();  删除属性

    示例


    package com.ixenos.dom4j;
    
    import java.io.FileOutputStream;
    
    import org.dom4j.Document;
    import org.dom4j.DocumentHelper;
    import org.dom4j.Element;
    import org.dom4j.io.OutputFormat;
    import org.dom4j.io.XMLWriter;
    
    /**
     * 使用DOM4J的API生成XML文件
     * 
     * @author ixenos
     *
     */
    public class CreateXML {
    
    	/**
    	 * 封装DOM树
    	 * 
    	 * @param file
    	 * @throws Exception
    	 */
    	public Document getDOM() throws Exception {
    		// 生成一个空的Document对象
    		Document doc = DocumentHelper.createDocument();
    
    		// 手动装入标签、属性、文本
    		// 根标签
    		Element rootE = doc.addElement("Students");
    
    		// 第一个子标签
    		Element firE = rootE.addElement("Student");
    		firE.addAttribute("id", "1");
    		// 第一个子标签的子
    		firE.addElement("name").addText("张三");
    		firE.addElement("gender").addText("男");
    		firE.addElement("grade").addText("物联网一般");
    		firE.addElement("address").addText("广州白云");
    
    		// 第二个子标签
    		Element secE = rootE.addElement("Student");
    		secE.addAttribute("id", "2");
    		// 第一个子标签的子
    		secE.addElement("name").addText("李四");
    		secE.addElement("gender").addText("女");
    		secE.addElement("grade").addText("物联网二班");
    		secE.addElement("address").addText("广州海珠");
    		return doc;
    	}
    
    	/**
    	 * 将DOM树输出为XML文件
    	 * 
    	 * @throws Exception
    	 */
    	public static void writeXML(Document doc, Boolean pretty, String encoding) throws Exception {
    		// 创建文件输出流,定向所要生成的文件路径
    		FileOutputStream out = new FileOutputStream("demo.xml");
    		
    		// 创建OutputFormat,作为写到XML的格式化选项
    		// 为了调试可视化,我们需要OutputFormat.createPrettyPrint()
    		// 为了传输的高效化,我们需要Outputormat.create.createCompactFormat()
    		OutputFormat format = null;
    		if (pretty) {
    			format = OutputFormat.createPrettyPrint();
    		} else {
    			format = OutputFormat.createCompactFormat();
    		}
    		// 设置XML文件指定编码
    		format.setEncoding(encoding);
    
    		// 创建XMLWriter,将DOM树写到XML中,注意格式化问题
    		XMLWriter writer = new XMLWriter(out, format);
    		writer.write(doc);
    		writer.close();
    	}
    
    	public static void main(String[] args) throws Exception {
    		CreateXML demo = new CreateXML();
    		//生成DOM树
    		Document doc = demo.getDOM();
    		//根据DOM树生成XML
    		writeXML(doc, true, "utf-8");
    	}
    
    }
    

      

    <?xml version="1.0" encoding="utf-8"?>
    
    <Students>
      <Student id="1">
        <name>张三</name>
        <gender>男</gender>
        <grade>物联网一般</grade>
        <address>广州白云</address>
      </Student>
      <Student id="2">
        <name>李四</name>
        <gender>女</gender>
        <grade>物联网二班</grade>
        <address>广州海珠</address>
      </Student>
    </Students>
    

      

  • 相关阅读:
    [DP] Rod-cutting problem
    Dynamic Programming (DP) 问题总结
    [CC150] 八皇后问题
    [cc150] 硬币问题
    [cc150] 括号问题
    [CC150] Get all permutations of a string
    让Eclipse使用新版本的JRE
    Java中的数组问题
    慎用递归!
    cocos2d-x 添加背景音乐和音效-SimpleAudioEngine
  • 原文地址:https://www.cnblogs.com/ixenos/p/6282561.html
Copyright © 2011-2022 走看看