From b07571d398f4bfd9a27783d5130230aea94e01cd Mon Sep 17 00:00:00 2001 From: Looly Date: Fri, 20 Nov 2020 16:45:49 +0800 Subject: [PATCH] fix xml format --- .../java/cn/hutool/core/util/XmlUtil.java | 1 + .../java/cn/hutool/core/util/XmlUtilTest.java | 37 +++++++++++++++++++ 2 files changed, 38 insertions(+) diff --git a/hutool-core/src/main/java/cn/hutool/core/util/XmlUtil.java b/hutool-core/src/main/java/cn/hutool/core/util/XmlUtil.java index 93739c56b..fd200cb6b 100644 --- a/hutool-core/src/main/java/cn/hutool/core/util/XmlUtil.java +++ b/hutool-core/src/main/java/cn/hutool/core/util/XmlUtil.java @@ -587,6 +587,7 @@ public class XmlUtil { final Transformer xformer = factory.newTransformer(); if (indent > 0) { xformer.setOutputProperty(OutputKeys.INDENT, "yes"); + //fix issue#1232@Github xformer.setOutputProperty(OutputKeys.DOCTYPE_PUBLIC, "yes"); xformer.setOutputProperty("{http://xml.apache.org/xslt}indent-amount", String.valueOf(indent)); } diff --git a/hutool-core/src/test/java/cn/hutool/core/util/XmlUtilTest.java b/hutool-core/src/test/java/cn/hutool/core/util/XmlUtilTest.java index 658d2440a..d05c72ab4 100644 --- a/hutool-core/src/test/java/cn/hutool/core/util/XmlUtilTest.java +++ b/hutool-core/src/test/java/cn/hutool/core/util/XmlUtilTest.java @@ -2,6 +2,7 @@ package cn.hutool.core.util; import cn.hutool.core.collection.CollUtil; import cn.hutool.core.io.resource.ResourceUtil; +import cn.hutool.core.lang.Console; import cn.hutool.core.map.MapBuilder; import cn.hutool.core.map.MapUtil; import lombok.Data; @@ -9,6 +10,8 @@ import org.junit.Assert; import org.junit.Ignore; import org.junit.Test; import org.w3c.dom.Document; +import org.w3c.dom.Element; +import org.w3c.dom.NodeList; import org.xml.sax.Attributes; import org.xml.sax.helpers.DefaultHandler; @@ -226,4 +229,38 @@ public class XmlUtilTest { private String ProjectCode; private String BankCode; } + + + @Test + @Ignore + public void formatTest(){ + // https://github.com/looly/hutool/pull/1234 + Document xml = XmlUtil.createXml("NODES"); + xml.setXmlStandalone(true); + + NodeList parentNode = xml.getElementsByTagName("NODES"); + + Element parent1Node = xml.createElement("NODE"); + + Element node1 = xml.createElement("NODENAME"); + node1.setTextContent("走位"); + Element node2 = xml.createElement("STEP"); + node2.setTextContent("1"); + Element node3 = xml.createElement("STATE"); + node3.setTextContent("2"); + Element node4 = xml.createElement("TIMELIMIT"); + node4.setTextContent(""); + Element node5 = xml.createElement("STARTTIME"); + + parent1Node.appendChild(node1); + parent1Node.appendChild(node2); + parent1Node.appendChild(node3); + parent1Node.appendChild(node4); + parent1Node.appendChild(node5); + + parentNode.item(0).appendChild(parent1Node); + + String format = XmlUtil.toStr(xml,"GBK",true); + Console.log(format); + } }