From 8a154315fe85e544374363e5d7f4318e8aa9c5d3 Mon Sep 17 00:00:00 2001 From: Looly Date: Fri, 10 Mar 2023 13:23:59 +0800 Subject: [PATCH] fix code --- CHANGELOG.md | 5 ++--- hutool-core/src/main/java/cn/hutool/core/util/XmlUtil.java | 6 +++++- .../src/test/java/cn/hutool/core/util/XmlUtilTest.java | 2 +- 3 files changed, 8 insertions(+), 5 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 44a90222b..48e6feefe 100755 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,14 +3,13 @@ ------------------------------------------------------------------------------------------------------------- -# 6.0.0.M1 (2022-10-09) +# 6.0.0.M1 (2023-03-10) ### 计划实现 -* 【poi 】 PDF相关(基于PdfBox) -* 【poi 】 HTML、DOCX转换相关 * 【poi 】 Markdown相关(如HTML转换等),基于commonmark-java * 【db 】 增加DDL封装 * 【poi 】 CellUtil.getCellIfMergedRegion考虑添加缓存支持,增加最大和最小范围判断,减少遍历 +* 【http 】 公共代理和SSL验证 ### ❌不兼容特性 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 450f94688..65d66f91a 100755 --- a/hutool-core/src/main/java/cn/hutool/core/util/XmlUtil.java +++ b/hutool-core/src/main/java/cn/hutool/core/util/XmlUtil.java @@ -988,7 +988,11 @@ public class XmlUtil { public static T xmlToBean(final Node node, final Class bean) { final Map map = xmlToMap(node); if (null != map && map.size() == 1) { - return BeanUtil.toBean(CollUtil.get(map.values(), 0), bean); + final String nodeName = CollUtil.getFirst(map.keySet()); + if (bean.getSimpleName().equalsIgnoreCase(nodeName)) { + // 只有key和bean的名称匹配时才做单一对象转换 + return BeanUtil.toBean(CollUtil.get(map.values(), 0), bean); + } } return BeanUtil.toBean(map, bean); } 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 595b457dd..99d1666f4 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 @@ -351,7 +351,7 @@ public class XmlUtilTest { @Test public void xmlStrToBeanTest(){ - final String xml = "张三20zhangsan@example.com"; + final String xml = "张三20zhangsan@example.com"; final Document document = XmlUtil.readXML(xml); final UserInfo userInfo = XmlUtil.xmlToBean(document, UserInfo.class); Assert.assertEquals("张三", userInfo.getName());