私は現在、アンドロイドで Jaxb を使用して xml ファイルを解析する方法を学んでいます。しかし、コードのどこが間違っているのか、どこをどのように修正すればよいのかわかりません。XML を解析して食品のリストを取得できません。List を削除して単に Food と書くと、xml の最後の要素のみが解析され、残りは上書きされたように見えます。私を助けてください。
http://www.w3schools.com/xml/simple.xmlを解析しようとしていますが、これまでのところ次のコードがあります。
---- XML をアンマーシャリングするためのコード
URL url = new URL("http://www.w3schools.com/xml/simple.xml");
InputSource is = new InputSource(url.openStream());
is.setEncoding("ISO-8859-1");
JAXBContext jaxbContext = JAXBContext.newInstance(BreakfastMenu.class);
Unmarshaller jaxbUnmarshaller = jaxbContext.createUnmarshaller();
BreakfastMenu menu = (BreakfastMenu)jaxbUnmarshaller.unmarshal(is);
----- クラスは次のようになります ----- Breakfast.java
@XmlRootElement(name="breakfast_menu")
public class BreakfastMenu {
private List<Food> food = new ArrayList<Food>();
public List<Food> getFood() {
return food;
}
@XmlElement(name="food")
public void setFood(List<Food> food) {
this.food = food;
}
}
--- 料理教室
@XmlRootElement(name="food")
public class Food {
private String name;
private String description;
private String calories;
public String getName() {
return name;
}
@XmlElement
public void setName(String name) {
this.name = name;
}
// 説明とカロリーも同じ
PS:このリンクも試してみまし た。ありがとうございます。