使用XStreamMarshaller,如何显示没有标记名称的标记值

问题描述 投票:0回答:1

我正在尝试将xml文档编组为以下格式:

<Description language="FR">ceci</Description>
<Description language="AN">this</Description>

但我得到以下输出:

<Description language="FR">
    <value>ceci</value>
</Description> 
<Description language="AN">
    </value>this</value>
</Description>

这是我尝试的代码:

@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "Description", propOrder = {"value"})
public class Description {

    @XmlValue
    protected String value;

    @XmlAttribute(name = "language", required = true)
    protected Language language;

    public String getValue() {
        return value;
    }

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

    public Language getLanguage() {
        return language;
    }

    public void setLanguage(Language value) {
        this.language = value;
    }
}

任何帮助表示赞赏!

java xml jaxb
1个回答
0
投票

试试这个,

description.Java

@XmlRootElement
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "Description", propOrder = {"value"})
public class Description {

    @XmlValue
    protected String value;

    @XmlAttribute(name = "language", required = true)
    protected String language;

    public String getValue() {
        return value;
    }

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

    public String getLanguage() {
        return language;
    }

    public void setLanguage(String value) {
        this.language = value;
    }
}

用jaxb编组

File outputFile = new File("output path/fileName.xml");
JAXBContext jaxbContext = JAXBContext.newInstance(Description.class);
Marshaller jaxbMarshaller = jaxbContext.createMarshaller();
jaxbMarshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true);

Description description = new Description();
description.setLanguage("FR");
description.setValue("ceci");

jaxbMarshaller.marshal(description, outputFile);

输出(fileName.xml)

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<description language="FR">ceci</description>
© www.soinside.com 2019 - 2024. All rights reserved.