2012-07-13 226 views
4

我想從一個對象列表創建一個XML文件。對象具有一些屬性,因此標記將是屬性名稱,並且相應的數據將位於標記內。如何從Java中的對象列表創建XML文件?

這是例子:

我有一個列表myEquipmentList,包含類Equipment的100個對象。現在,在Equipment類的屬性是ID,名稱,大小,措施,unit_of_measure等

現在我想創建XML將是這樣的東西。

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

任何想法?

+1

序列化和反序列化對象可能有幫助 – Pooya 2012-07-13 11:45:17

+1

想要使用XMLEncoder/XMLDecore? – adatapost 2012-07-13 11:45:47

回答

4

您可以使用對象列表創建一個類,然後將該列表序列化爲xml,最後將xml反序列化爲列表。

請訪問以下鏈接 - 非常有用: How to convert List of Object to XML doc using XStream

+0

感謝Priya,我認爲這個選項將會很容易和簡單..非常感謝@ – Pranav 2012-07-13 11:45:57

+0

否問題。請接受答案,如果你認爲我已經回答了你的問題:) – Pita 2012-07-13 11:53:24

+0

確定我接受了它... Pranav – Pranav 2012-07-13 12:01:29

1

執行此操作的最簡單方法之一是簡單地迭代列表並使用字符串來編寫XML。沒什麼特別的,非常快速和容易。

+0

感謝您的快速回復....但我沒有明確得到您的解決方案..您可以請詳細說明一點... – Pranav 2012-07-13 11:41:23

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... 

} 

你對計算器搜索發現大量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

+0

嗨,你能給我一些關於JAXB的相關鏈接,這樣我可以映射這個答案,我會得到它。目前我沒有從這個答案中得到任何東西.... – Pranav 2012-07-13 11:59:56

+0

@ user1502359 googling JAXB導致什麼都沒有? – Woot4Moo 2012-07-13 12:07:58

+0

感謝alott MattR !!當然,這些文章(特別是最後2個鏈接)非常有幫助,並會給我機會去學習新事物! – Pranav 2012-07-13 12:25:58