gpt4 book ai didi

java - Xstream问题和java对象

转载 作者:行者123 更新时间:2023-12-01 16:02:16 25 4
gpt4 key购买 nike

我正在寻找构建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);

我如何围绕它创建其他一流的对象?任何帮助将不胜感激。

问候,阿马尔

最佳答案

我从未使用过 XStream,但可以使用以下对象模型来表示您的 XML 文档。我已经包含了标准 JAXB 注释(包含在 Java SE 6 中)来演示 XML 映射。

放置规则

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;

}

下面是一个示例程序来演示它的工作原理:

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);
}
}

关于java - Xstream问题和java对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3543773/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com