当节点包含值时,使用 JAXB 将 XML 转换为对象

Posted

技术标签:

【中文标题】当节点包含值时,使用 JAXB 将 XML 转换为对象【英文标题】:Convert XML to Object with JAXB when node contains value 【发布时间】:2017-07-15 12:41:09 【问题描述】:

我以前曾使用过 JAXB,但我从未遇到过节点包含值的 XML。喜欢这个:

<node1>
  <node2 id="abc"/>
</node1>

我确实将node1 视为@XmlRootElement,然后我使用了一个带有@XmlElement 注释的Node2 对象列表。在 Node2 对象中,我创建了一个字符串变量“id”,如下所示

@XmlRootElement(name = "node1")
public class Node1

  @XmlElement(name="node2")
  private List<Node2> node2list;

  //get-set


public class Node2

  private String id;

  //get-set
 

问题是我无法获取 node2 的值。它总是给出空值。

【问题讨论】:

【参考方案1】:

node2 元素内没有值,这就是为什么你得到nullidnode2 中的属性,你必须使用@XmlAttribute 来获得id 的值。

【讨论】:

以上是关于当节点包含值时,使用 JAXB 将 XML 转换为对象的主要内容,如果未能解决你的问题,请参考以下文章