Java 克隆或复制JAXB XML块

Java 克隆或复制JAXB XML块,java,jaxb,Java,Jaxb,我需要你的帮助。我正在使用JAXB生成一个XML文件。我需要做的客户机请求是,当检索数据(从数据库)以设置为JAXB对象时,我必须检查其中一个元素值。例如: <id>123</id> <Code>X22</Code> **<location>A1-2-3</location>** 如果位置值如上所示,我必须将其更改为A1、A2和A3,并设置为位置属性克隆块,如下面的示例所示。 第一份 <id>123</i

我需要你的帮助。我正在使用JAXB生成一个XML文件。我需要做的客户机请求是,当检索数据(从数据库)以设置为JAXB对象时,我必须检查其中一个元素值。例如:

<id>123</id>
<Code>X22</Code>
**<location>A1-2-3</location>**
如果位置值如上所示,我必须将其更改为A1、A2和A3,并设置为位置属性克隆块,如下面的示例所示。 第一份

<id>123</id>
<Code>X22</Code>
<location>A1</location>
第二份

<id>123</id>
<Code>X22</Code>
**<location>A2</location>**
第三份

<id>123</id>
<Code>X22</Code>
**<location>A3</location>**
并将其设置为相同的XML。我的问题是,我可以复制块,但当我改变位置值时,它会在所有块中改变,因为我是初学者,所以请帮助我,如果可以的话


提前感谢。

免责声明:我是其中包括的作者

您可以使用来实现这一点。这个插件提供了一些很好的
clone
copy…
方法,可以用来深度复制JAXB结构

这就是它的工作原理

  • 首先你必须这样做
  • 您还需要添加一个
    org.jvnet.jaxb2_commons:jaxb2 basics-runtime
    依赖项
  • 生成的类将获得
    clone()
    copyTo(…)
    方法
  • 简单的做法是使用
    clone()
    ,只需克隆整个内容并更改需要更改的值
  • 更高级的方法是编写
    CopyStrategy
    ,并使用
    myJaxbObject.copyTo(null,otherInstance,myCopyStrategy)
    使用该策略“复制到”实例
    。该策略可以决定复制哪些值并进行一些基本转换

非常感谢您的回复。我已经用另一种方法解决了,但你的解决方案是最好的。再次感谢。