gpt4 book ai didi

java - 如何将数组索引添加到 JAXB 生成的 XML?

转载 作者:搜寻专家 更新时间:2023-11-01 01:24:06 26 4
gpt4 key购买 nike

我有一个Java bean ala

@XmlRootElement public class Bean {
@XmlElementWrapper(name = "ints") @XmlElement(name = "int")
int[] values;

// constructors, getters, setters, etc...
}

JAXB 正在生成类似 XML

<bean>
<ints>
<int>12</int>
<int>34</int>
<int>56</int>
</ints>
</bean>

我希望数组索引包含在 <int> 中标签作为数组位置传达了重要的值(value)。最好是像

这样的属性
<bean>
<ints>
<int id='0'>12</int>
<int id='1'>34</int>
<int id='2'>56</int>
</ints>
</bean>

有办法吗?

最佳答案

XML 元素的顺序确实携带信息。元素序列具有明确的顺序,因此添加数组索引将是多余的,除非您计划跳过索引或让它们乱序。

由于这种推理,JAXB 无法自动执行您要求的操作。如果您仍想这样做,则需要将您的值包装在一个类中,该类将索引值合并为 @XmlAttribute 值:

@XmlRootElement 
public class Bean {
@XmlElementWrapper(name = "ints")
@XmlElement(name = "int")
MyInt[] values;

// constructors, getters, setters, etc...
}

public class MyInt {
@XmlAttribute(name="id")
int id;

@XmlValue
int value;
}

您需要确保正确填充 id 字段。

关于java - 如何将数组索引添加到 JAXB 生成的 XML?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3066020/

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