簡體   English   中英

如何使用不同標簽解組XML

[英]How to unmarshalling xml with different tags

我有以下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`

要使用JAXB解組此xml,請使用以下源:

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

當我為Set解組xml時,我收到了結果:“一些啤酒”和“一些其他啤酒”,因為注釋和標簽名稱。 因此,我該如何解析“ root”標記中的所有子項。 即Set的結果必須是:一些啤酒,一些其他啤酒,一些食物,一些其他食物。

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

您真的需要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;
    }

}

另外,您還需要使用吸氣劑和吸氣劑創建食品和啤酒類。 對於列表,不需要創建setter,因為可以在getter之后使用add()。 但我建議將DOM用於此任務。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM