2010-08-22 38 views
0

我希望建立Java對象西河問題和Java對象

<placement_rules> 
    <section name="news"> 
    <front_order> 
     <article_type name="article1"></article_type> 
     <article_type name="article2"></article_type> 
    </front_order> 
    <back_order> 
     <article_type name="article3"></article_type> 
    </back_order> 
    </section> 
    <section name="sports"> 
    <front_order> 
     <article_type name="article4"></article_type> 
    </front_order> 
    <back_order> 
     <article_type name="article5"></article_type> 
     <article_type name="article6"></article_type> 
    </back_order> 
    </section> 
</placement_rules> 

什麼是我需要創建的對象?

我從裏面SectionRule.java

@XStreamAsAttribute 
@XStreamAlias("name") 
private String sectionName; 

@XStreamAlias("front_order") 
private List<ConfigPlacementNode> frontOrder = new ArrayList<ConfigPlacementNode>(0); 

@XStreamAlias("back_order") 
private List<ConfigPlacementNode> backOrder = new ArrayList<ConfigPlacementNode>(0); 

如何創建它周圍的其他第一類對象開始?任何幫助將不勝感激。

問候, 阿馬爾

回答

1

我從來沒有使用XStream的,但下面的對象模型可用於表示XML文檔。我已經包含了標準的JAXB註釋(包含在Java SE 6中)來演示XML映射。

PlacementRules

import java.util.List; 
import javax.xml.bind.*; 

@XmlRootElement(name="placement_rules") 
@XmlAccessorType(XmlAccessType.FIELD) 
public class PlacementRules { 

    private List<Section> section; 

} 

import java.util.List; 
import javax.xml.bind.annotation.*; 

@XmlAccessorType(XmlAccessType.FIELD) 
public class Section { 

    @XmlAttribute 
    private String name; 

    @XmlElementWrapper(name="front_order") 
    @XmlElement(name="article_type") 
    private List<Article> frontOrderArticles; 

    @XmlElementWrapper(name="back_order") 
    @XmlElement(name="article_type") 
    private List<Article> backOrderArticles; 

} 

文章

import javax.xml.bind.annotation.*; 

@XmlAccessorType(XmlAccessType.FIELD) 
public class Article { 

    @XmlAttribute 
    private String name; 

} 

下面是一個SAMP le程序來演示它的工作原理:

import java.io.File; 
import javax.xml.bind.*; 

public class Demo { 

    public static void main(String[] args) throws Exception { 
     JAXBContext context = JAXBContext.newInstance(PlacementRules.class); 

     Unmarshaller unmarshaller = context.createUnmarshaller(); 
     File xml = new File("src/forum38/input.xml"); 
     PlacementRules placementRules = (PlacementRules) unmarshaller.unmarshal(xml); 

     Marshaller marshaller = context.createMarshaller(); 
     marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true); 
     marshaller.marshal(placementRules, System.out); 
    } 
}