gpt4 book ai didi

java - JAXB:对具有相同值的不同 XML 元素进行解码

转载 作者:行者123 更新时间:2023-11-30 03:41:33 26 4
gpt4 key购买 nike

关于大致相同的主题有很多问题,但我找不到我想要的内容。如果我错过了,我深表歉意。

我正在尝试解码具有公共(public)逻辑元素但使用不同标签定义的 XML 文件:

Xml 输入文件

<xml>
<animals>
<dog>
<bark>loud</bark>
</dog>
<cat>
<meow>frail</meow>
</cat>
</animals>
</xml>

两者<bark><meow>实际上隐藏了相同的概念,即动物的“音调”或“音量”,定义为 String .

我可以这样做:

动物.java

public abstract class Animal {

public abstract String getVolume();

}

所需要做的就是实现 getVolume()两者皆 Cat.javaDog.java并返回this.barkthis.meow ,分别。

但是,拥有 volume 似乎更干净Animal.java 中的属性并以某种方式告诉 JAXB 将这两个字段映射到它。

我是不是想太多了?您将如何实现?

(当然,我无法控制输入 XML。如果可能的话,我还希望避免使用 MOXy 的解决方案,因为插入对该项目的另一个依赖项可能很困难。)

最佳答案

你会:

  1. Animal 类标记为 @XmlTransient 以将其作为映射类删除。
  2. 重写每个子类中的 getVolume() 方法,并对其进行注释以匹配该类所需的元素。

对于这个特定的模型,我的偏好是每个动物都有一个 volume 元素。

关于java - JAXB:对具有相同值的不同 XML 元素进行解码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26755269/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com