如何从Java中的对象列表创建XML文件?

时间:2012-07-13 11:37:33

标签: java xml serialization

我想从一个对象列表创建一个XML文件。对象具有一些属性,因此标记将是属性名称,相应的数据将位于标记内。

这是一个例子:

我有一个列表myEquipmentList,其中包含类Equipment的100个对象。现在,Equipment类中的属性是id,name,size,measures,unit_of_measure等。

现在我想创建类似这样的XML。

<Equipment id=1>``
<name>Ruler</name>
<size>1000</size>
<measures>length</measures>
<unit_of_measure>meter</unit_of_measure>
</Equipment>

有什么想法吗?

4 个答案:

答案 0 :(得分:4)

您可以使用对象列表创建一个类,然后将列表反序列化为xml,最后将xml反序列化为列表。

请看这个链接 - 非常有用: How to convert List of Object to XML doc using XStream

答案 1 :(得分:4)

了解JAXB。

你可以有一个这样的类来生成你想要的XML:

@XmlRootElement
public class Equipment {
  private Long id;
  private String name;
  private Integer size;
  ...etc...

  @XmlAttribute
  public Long getId() {
     return id;
  }

  public void setId(Long id) {
     this.id = id;
  }

  @XmlElement
  public String getName() {
    return name;
  }

  public void setName(String name) {
    this.name = name;
  }

  ... etc...

}

你可以在google上找到关于在stackoverflow上搜索的大量关于JAXB的信息。

http://jaxb.java.net/

http://jaxb.java.net/tutorial/

这些看起来像几个简单的教程:

http://www.mkyong.com/java/jaxb-hello-world-example/

http://www.vogella.com/articles/JAXB/article.html

答案 2 :(得分:1)

最简单的方法之一就是遍历列表并使用字符串来编写XML。没有什么特别的,非常快捷的。

答案 3 :(得分:0)

我倾向于在JAXB上使用名为Simple XML Serialization的库,我不得不说它非常简单,但非常灵活。

Simple和JAXB here之间有很好的比较。