1
xmlを解析するためにjaxbを使用しています。プロセスのいくつかの要素を失ったことを除いて、ほとんどの仕事を管理しました。jaxbを使用して非整列化xml、リスト内の要素がありません
<Balls>
<Ball>
<Name>Basketball</Name>
<Colors>
<Color>red</Color>
<Color>black</Color>
</Colors>
</Ball>
</Balls>
私は色のリストに "赤" が失わ:
import java.io.File;
import java.util.ArrayList;
import java.util.List;
import javax.xml.bind.JAXBContext;
import javax.xml.bind.Unmarshaller;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlRootElement;
public class JAXBTest {
public static void main(String[] args) {
File fXmlFile = new File("src\\main\\resource\\balls.xml");
if (fXmlFile.isFile()) {
try {
JAXBContext context = JAXBContext.newInstance(Balls.class);
Unmarshaller unmarshaller = context.createUnmarshaller();
Balls balls = (Balls) unmarshaller.unmarshal(fXmlFile);
System.out.println(balls);
} catch (Exception e) {
e.printStackTrace();
}
}
}
}
@XmlRootElement(name = "Balls")
class Balls {
private List<Ball> balls = new ArrayList<Ball>();
@XmlElement(name = "Ball")
public List<Ball> getBalls() {
return balls;
}
public void setBalls(List<Ball> balls) {
this.balls = balls;
}
}
class Ball {
private String name;
private List<Color> colors = new ArrayList<Color>();
@XmlElement(name = "Name")
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
@XmlElement(name = "Colors")
public List<Color> getColors() {
return colors;
}
public void setColors(List<Color> colors) {
this.colors = colors;
}
}
class Color {
private String color;
@XmlElement(name = "Color")
public String getColor() {
return color;
}
public void setColor(String color) {
this.color = color;
}
}
はここに私のサンプルXMLです: はここに私のコード例です。私は何か見落としてますか?どんな助けもありがとう。
次これが私の問題を解決しました。どうもありがとう。 – wqzhou
このトピックをupvoteして閉じることができます:) – Xstian