2010-08-22 37 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); 
    } 
}