gpt4 book ai didi

xml - 使用 JAXB (Moxy) 从 XML 获取列表

转载 作者:数据小太阳 更新时间:2023-10-29 02:36:55 28 4
gpt4 key购买 nike

我正在使用 jdk1.6 和 eclipselink-2.3.2.v20111125-r10461

我有一个 XML 类似于:



<pre><code><alpha>
<beta>
<omega>abcd</omega>
<gamma>
<delta>001</delta>
<delta>002</delta>
<delta>003</delta>
</gamma>
</beta>
</alpha>
</code></pre>

我注释的 bean 看起来像:



<pre><code>@XmlRootElement(name = "alpha")
@XmlAccessorType(XmlAccessType.FIELD)
public Class Alpha {

@XmlPath("beta/omega/text()")
private String omegaValue;

@XmlElement(name = "delta")
@XmlElementWrapper(name = "gamma")
private List<String> deltaList;

public String getOmegaValue() {
return omegaValue;
}

public void setOmegaValue(String omegaValue) {
this.omegaValue = omegaValue;
}

public List<String> getDeltaList() {
return deltaList;
}

public void setDeltaList (List<String> deltaList ) {
this.deltaList = deltaList ;
}
}
</code></pre>

在我的测试代码中,我执行以下操作来检查列表,但它是空的。



<pre><code>System.out.println(alphaInstance.getDeltaList().size());//returns 0!!
for (String deltaValue: alphaInstance.getDeltaList()) {//empty!!
System.out.println(deltaValue);
}
</code></pre>

我是不是做错了什么? omegaValue 工作正常。请帮忙,谢谢。

最佳答案

deltaList 属性的映射缺少 beta 级别。您可以使用 @XmlPath 注释并执行以下操作:

@XmlPath("beta/gamma/delta/text()")
private List<String> deltaList;

了解更多信息

关于xml - 使用 JAXB (Moxy) 从 XML 获取列表 <String>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9817076/

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