2017-03-09 60 views
0

我有了這個XML代碼:如何解組XML具有不同的標籤

<?xml version="1.0" encoding="UTF-8"?> 
    <root> 
     <beer>some beer</beer> 
     <beer>some another beer</beer> 
     <food>some food</food> 
     <food>some another food</food> 
    </root>`enter code here` 

要解組此XML與JAXB我使用這個來源:

@XmlElement(name="beer") 
public void setKey(Set<String> key) 
{ 
    this.key = key; 
} 

當我解組XML爲設置我收到了結果:「有些啤酒」和「另一個啤酒」,因爲這個註釋和標籤名稱。 那麼如何解析「根」標籤中的所有孩子。 即結果必須是:一些啤酒,一些另外的啤酒,一些食物,一些另外的食物。

以前感謝您爲我的問題花費的時間。

回答

1

你真的需要JAXB嗎? 如果是這樣,也許這樣的事情會有所幫助:

import java.util.ArrayList; 

@XmlAccessorType(XmlAccessType.FIELD) 
@XmlType(name = "", propOrder = { 
    "beer", 
    "food" 
}) 
@XmlRootElement(name = "root") 
public class Root { 

    @XmlElement(required = true) 
    protected List<Beer> beer; 
    @XmlElement(required = true) 
    protected List<Food> food; 

public List<Beer> getBeer() { 
     if (beer == null) { 
      beer = new ArrayList<Beer>(); 
     } 
     return this.beer; 
    } 

public List<Food> getFood() { 
     if (food == null) { 
      food = new ArrayList<Food>(); 
     } 
     return this.food; 
    } 

} 

你也需要用getter和setter創建食品和啤酒類。對於列表,不需要創建setter,因爲可以在getter之後使用add()。 但我建議使用DOM來執行此任務。

相關問題