当前位置:   article > 正文

Spring Boot使用dom4j处理xml数据

Spring Boot使用dom4j处理xml数据

一、引入

<dependency>
    <groupId>org.dom4j</groupId>
    <artifactId>dom4j</artifactId>
    <version>2.1.4</version>
</dependency>
  • 1
  • 2
  • 3
  • 4
  • 5

二、使用

Document document = DocumentHelper.createDocument();
Element datainfo = DocumentHelper.createElement("ela");
document.setRootElement(datainfo);
Element elb = datainfo.addElement("elb");
elb.addElement("a").setText("1.6");
System.out.println(document.asXML());
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
#打印结果
<?xml version="1.0" encoding="UTF-8"?>
<ela>
  <elb>
    <a>1.6</a>
  </elb>
</ela>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

三、特殊字符处理

当需要在xml手动添加一段xml数据时,会发现<>被解析了

elb.addElement("b").setText("<c>2.3</c>");
  • 1
#打印结果
<?xml version="1.0" encoding="UTF-8"?>
<ela>
  <elb>
    <a>1.6</a>
    <b>&lt;c&gt;2.3&lt;/c&gt;</b>
  </elb>
</ela>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
    /**
     * 格式化XML文档
     * @param document xml文档
     * @param charset  字符串的编码
     * @param istrans  是否对属性和元素值进行转移
     * @return  格式化后XML字符串
     */
    public static String formatXml(Document document, String charset, boolean istrans)
    {
        OutputFormat format = OutputFormat.createPrettyPrint();
        format.setEncoding(charset);
        StringWriter sw = new StringWriter();
        XMLWriter xw = new XMLWriter(sw, format);
        xw.setEscapeText(istrans);
        try {
            xw.write(document);
            xw.flush();
            xw.close();
        } catch (IOException e) {
            System.out.println("格式化XML文档发生异常,请检查!");
            e.printStackTrace();
        }
        return sw.toString();
    }
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
System.out.println(formatXml(document, "GBK", false));
  • 1
#打印结果
<?xml version="1.0" encoding="GBK"?>
<ela>
  <elb>
    <a>1.6</a>
    <b><c>2.3</c></b>
  </elb>
</ela>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
本文内容由网友自发贡献,转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号