【问题标题】:Getting a List<String> from XML using JAXB (Moxy)使用 JAXB (Moxy) 从 XML 获取 List<String>
【发布时间】:2012-04-06 16:58:15
【问题描述】:

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

我有一个类似于以下内容的 XML:

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

我的注释 bean 看起来像:

@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 ;
    }
}

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

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

这里做错了什么? omegaValue 工作正常。请帮忙,谢谢。

【问题讨论】:

    标签: xml eclipselink jaxb2 java-6 moxy


    【解决方案1】:

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

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

    更多信息

    【讨论】:

    • 你刚刚得到了一个 MOXy 粉丝! :-)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-06-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-05-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多