我有一个如下的xml文件,当filePath2为null或为空时,我希望该文件的值等于filePath1的值。有没有一种方法可以通过JAXB实现这一目标。

<file filePath1="C:/filePath">
   <subFile name="Test">
      <filePath2></filePath2>
   </subFile>
<file/>

我不想对默认值进行硬编码。如果filePath2的值为null或blank(“”),我想将filePath1属性设置为'String filePath'的值。有没有办法通过JAXB中的 setter 来做到这一点?

最佳答案

使用纯Oracle JAXB,我仅看到使用javax.xml.bind.Unmarshaller.Listener实现该可能性。
在模型类中实现该接口(interface),并在afterUnmarshal(..)方法中执行必要的检查。

在那里,您可以访问filePath1的值并将其设置(如果需要)为filePath2

10-07 18:09