2016-08-04 10 views
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です: はここに私のコード例です。私は何か見落としてますか?どんな助けもありがとう。

答えて

0

使用するクラス

import java.io.Serializable; 
import java.util.ArrayList; 
import java.util.List; 
import javax.xml.bind.annotation.XmlAccessType; 
import javax.xml.bind.annotation.XmlAccessorType; 
import javax.xml.bind.annotation.XmlElement; 
import javax.xml.bind.annotation.XmlRootElement; 
import javax.xml.bind.annotation.XmlType; 

@XmlAccessorType(XmlAccessType.FIELD) 
@XmlType(name = "", propOrder = { 
    "ball" 
}) 
@XmlRootElement(name = "Balls") 
public class Balls 
    implements Serializable 
{ 

    private final static long serialVersionUID = 657456748458L; 
    @XmlElement(name = "Ball", required = true) 
    protected Ball ball; 


    public Ball getBall() { 
     return ball; 
    } 


    public void setBall(Ball value) { 
     this.ball = value; 
    } 

    public boolean isSetBall() { 
     return (this.ball!= null); 
    } 


} 

@XmlAccessorType(XmlAccessType.FIELD) 
@XmlType(name = "", propOrder = { 
    "name", 
    "colors" 
}) 
class Ball 
    implements Serializable 
{ 

    private final static long serialVersionUID = 657456748458L; 
    @XmlElement(name = "Name", required = true) 
    protected String name; 
    @XmlElement(name = "Colors", required = true) 
    protected Colors colors; 


    public String getName() { 
     return name; 
    } 

    public void setName(String value) { 
     this.name = value; 
    } 

    public boolean isSetName() { 
     return (this.name!= null); 
    } 

    public Colors getColors() { 
     return colors; 
    } 


    public void setColors(Colors value) { 
     this.colors = value; 
    } 

    public boolean isSetColors() { 
     return (this.colors!= null); 
    } 


} 


@XmlAccessorType(XmlAccessType.FIELD) 
@XmlType(name = "", propOrder = { 
    "color" 
}) 
class Colors 
    implements Serializable 
{ 

    private final static long serialVersionUID = 657456748458L; 
    @XmlElement(name = "Color") 
    protected List<String> color; 


    public List<String> getColor() { 
     if (color == null) { 
      color = new ArrayList<String>(); 
     } 
     return this.color; 
    } 
} 
+0

次これが私の問題を解決しました。どうもありがとう。 – wqzhou

+0

このトピックをupvoteして閉じることができます:) – Xstian

関連する問題