zoukankan      html  css  js  c++  java
  • Dom4j向XML中增加节点与属性——(四)

    先获取到节点,然后在节点山添加Element
    添加节点 添加属性 设置开始标签与结束标签的值

    book.addElement("描述").addAttribute("name", "xxxxxx").setText("一本好书!");

    解决中文乱码问题:

      输出流最好用字节流(Stream),字节流可以控制编码格式,Writer是字符流。

      如果xml中编码是utf-8,格式器也用utf-8。格式器与xml文档的编码格式要一致。

     1 package Dom4j_XMLParser;
     2 
     3 import java.io.File;
     4 import java.io.FileOutputStream;
     5 import java.io.FileWriter;
     6 
     7 import org.dom4j.Attribute;
     8 import org.dom4j.Document;
     9 import org.dom4j.DocumentException;
    10 import org.dom4j.Element;
    11 import org.dom4j.io.OutputFormat;
    12 import org.dom4j.io.SAXReader;
    13 import org.dom4j.io.XMLWriter;
    14 import org.junit.Test;
    15 
    16 public class Demo2 {
    17 
    18     // 在第一本书后增加一个 <描述 name="xxxxxx">一本好书!</描述>
    19     @Test
    20     public void test1() throws Exception {
    21         // 创建SAX读取器
    22         SAXReader reader = new SAXReader();
    23         // 加载文档
    24         Document document = reader.read(new File("src/book.xml"));
    25         // 获取根节点(书架)
    26         Element root = document.getRootElement();
    27         // 获取根节点下的书节点,带s返回一个数组,再取数组的第二个
    28         Element book = (Element) root.elements("书").get(0);
    29         // 获取树下面的书名属性
    30         book.addElement("描述").addAttribute("name", "xxxxxx").setText("一本好书!");
    31 
    32 //        格式化输出流,同时指定编码格式。也可以在FileOutputStream中指定。
    33         OutputFormat format = OutputFormat.createPrettyPrint();
    34         format.setEncoding("utf-8");
    35 
    36         XMLWriter writer = new XMLWriter(new FileOutputStream("src/book.xml"),format);
    37         writer.write(document);
    38         writer.close();
    39     }
    40 
    41 }

    结果:

  • 相关阅读:
    PHP 日期的时区差异
    c++与c输出输入语句时空区别
    数据库中完整性约束的SQL定义几点小解
    字符的一字节8位问题
    C#抽象类
    SQL server 中SUBSTRING()以及CONVERT()的用法
    关于CS模式下,控制一个容器内控件的值问题
    新的公司新的感受
    小生谈字符串的截取函数SubString()仅限csharp语言
    LINQ中怎么使用NEWID()之自我学习与理解
  • 原文地址:https://www.cnblogs.com/qlqwjy/p/7279096.html
Copyright © 2011-2022 走看看