gpt4 book ai didi

java - JAXB 设置自顶向下解码

转载 作者:行者123 更新时间:2023-11-30 06:21:13 25 4
gpt4 key购买 nike

我正在尝试在解码 XML 源期间优化我的代码。我有这个 xml:

<Parent name="X">
<List>
<Element name="A">
<Element name="B">
<Element name="C">
</List>
</Parent>
<Parent name="Y">
<List>
<Element name="A">
<Element name="B">
<Element name="C">
</List>
</Parent>

我想在 Element 中使用 Parent 的名称值,因为如果 Parent 的名称是 X,则元素名称将为 X+element.getName(),否则将为 Y+element.getName()。我想做的是在解码过程中,在 Element bean 的 setName(String name) 方法中设置正确的值。这是因为我不想在解码后循环遍历“Parents”和“Elements”。问题在于 JAX-B 解码方法是自下而上的:它在创建对象 Parent 之前创建对象 Element,因此我不知道如何获取父属性名称。有没有办法改变这种行为?

最佳答案

您可以create a method void afterUnmarshal(Unmarshaller, Object Parent) 将在解码后调用。在此方法中,您可以根据需要更改对象的 name 属性。

您可能还想使用 @XmlElementWrapper(name="List") 注释您的 elements 属性,以使 Element 对象成为对象。

ps。这个答案与以下问题的答案几乎是 1:1:

JAXB / XJC parent-child-parent navigation

关于java - JAXB 设置自顶向下解码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48111200/

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