From ec38dcd5fac41da818a459b77e8a75565aa4c141 Mon Sep 17 00:00:00 2001 From: Looly Date: Fri, 9 Aug 2024 09:19:31 +0800 Subject: [PATCH] =?UTF-8?q?XmlUtil=E5=A2=9E=E5=8A=A0xmlToBean=E9=87=8D?= =?UTF-8?q?=E8=BD=BD=EF=BC=8C=E6=94=AF=E6=8C=81CopyOptions=E5=8F=82?= =?UTF-8?q?=E6=95=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../dromara/hutool/core/xml/XmlMapper.java | 7 ++++--- .../org/dromara/hutool/core/xml/XmlUtil.java | 21 ++++++++++++++++++- 2 files changed, 24 insertions(+), 4 deletions(-) diff --git a/hutool-core/src/main/java/org/dromara/hutool/core/xml/XmlMapper.java b/hutool-core/src/main/java/org/dromara/hutool/core/xml/XmlMapper.java index 49431dea9..bbb266771 100755 --- a/hutool-core/src/main/java/org/dromara/hutool/core/xml/XmlMapper.java +++ b/hutool-core/src/main/java/org/dromara/hutool/core/xml/XmlMapper.java @@ -13,6 +13,7 @@ package org.dromara.hutool.core.xml; import org.dromara.hutool.core.bean.BeanUtil; +import org.dromara.hutool.core.bean.copier.CopyOptions; import org.dromara.hutool.core.collection.CollUtil; import org.dromara.hutool.core.collection.ListUtil; import org.dromara.hutool.core.map.MapUtil; @@ -60,10 +61,10 @@ public class XmlMapper { * * @param bean类型 * @param bean bean类 + * @param copyOptions 拷贝选线,可选是否忽略错误等 * @return bean - * @since 5.2.4 */ - public T toBean(final Class bean) { + public T toBean(final Class bean, final CopyOptions copyOptions) { final Map map = toMap(); if (null != map && map.size() == 1) { final String nodeName = CollUtil.getFirst(map.keySet()); @@ -72,7 +73,7 @@ public class XmlMapper { return BeanUtil.toBean(CollUtil.get(map.values(), 0), bean); } } - return BeanUtil.toBean(map, bean); + return BeanUtil.toBean(map, bean, copyOptions); } /** diff --git a/hutool-core/src/main/java/org/dromara/hutool/core/xml/XmlUtil.java b/hutool-core/src/main/java/org/dromara/hutool/core/xml/XmlUtil.java index e361cf1f5..d206b38b5 100644 --- a/hutool-core/src/main/java/org/dromara/hutool/core/xml/XmlUtil.java +++ b/hutool-core/src/main/java/org/dromara/hutool/core/xml/XmlUtil.java @@ -13,6 +13,7 @@ package org.dromara.hutool.core.xml; import org.dromara.hutool.core.bean.BeanUtil; +import org.dromara.hutool.core.bean.copier.CopyOptions; import org.dromara.hutool.core.exception.HutoolException; import org.dromara.hutool.core.io.IORuntimeException; import org.dromara.hutool.core.io.IoUtil; @@ -587,6 +588,7 @@ public class XmlUtil extends XmlConstants { } // region ----- xmlToMap or xmlToBean + /** * XML转Java Bean
* 如果XML根节点只有一个,且节点名和Bean的名称一致,则直接转换子节点 @@ -598,7 +600,22 @@ public class XmlUtil extends XmlConstants { * @since 5.2.4 */ public static T xmlToBean(final Node node, final Class beanClass) { - return XmlMapper.of(node).toBean(beanClass); + return xmlToBean(node, beanClass, null); + } + + /** + * XML转Java Bean
+ * 如果XML根节点只有一个,且节点名和Bean的名称一致,则直接转换子节点 + * + * @param bean类型 + * @param node XML节点 + * @param beanClass bean类 + * @param copyOptions 拷贝选线,可选是否忽略错误等 + * @return bean + * @since 5.8.30 + */ + public static T xmlToBean(final Node node, final Class beanClass, final CopyOptions copyOptions) { + return XmlMapper.of(node).toBean(beanClass, copyOptions); } /** @@ -655,6 +672,7 @@ public class XmlUtil extends XmlConstants { // endregion // region ----- toXml + /** * 将Map转换为XML格式的字符串 * @@ -846,6 +864,7 @@ public class XmlUtil extends XmlConstants { } // region ----- append + /** * 在已有节点上创建子节点 *