JAXB编组具有相同名称的元素的变量列表

根据标题,我有一个我需要解组的XML文件:

   something1 something2 something3   

“wrap”只是一个包装器,但“元素”的数量会有所不同。

我有两个类来为JAXB提供便利:

换类:

 @XmlAccessorType(XmlAccessType.FIELD) @XmlRootElement(name = "root") public class Wrap { @XmlElementWrapper(name = "wrap") @XmlElement(name = "Element") private List elementList = new ArrayList(); public Wrap() {} public Wrap(List list) { this.elementList = list; } public void addElement(Element element) { this.elementList.add(element); } public List getWrap() { return this.elementList; } public void setWrap(List wrap) { this.elementList = wrap; } } 

元素类:

 @XmlRootElement(name = "Element") public class Element { private String Element; public Element() {} public Element(String element) { this.Element = element; } public String getElement() { return Element; } public void setElement(String element) { this.Element = element; } } 

然而,尝试解组XML完成而没有错误,元素值不与元素对象一起存储。 相反,toString为每个对象返回null。

我确实用一些数据填充了对象并将它们编组到一个文件中(如下所示)。 当然,这种格式不正确,应该与上面的XML相匹配。

     entry1   entry2   entry3    

我已经研究了一段时间了,假设我的注释是不正确的,但也许是其他的……

您需要执行以下操作:

  • 使用@XmlValue注释Element类的element属性。
  • 确保注释中元素名称的大小写与XML文档中的名称相匹配。

了解更多信息