Как я не могу перезаписать XML в JAVA JAXB? - PullRequest
0 голосов
/ 10 марта 2020

Я работаю над проектом, в котором мне нужно создать xml с пользовательскими тегами. Однако при использовании JAXB у меня возникает следующая проблема: поскольку метод этого класса вызывается другим классом из нескольких частей, я хочу, чтобы содержимое различных тегов было добавлено к предыдущему и не перезаписано. Учитывая код, не могли бы вы сказать мне, как изменить его, чтобы не было перезаписи, но добавил? Спасибо!

XmlCreator xmlcreator = new XmlCreator();
xmlcreator.setOntology(onto);
xmlcreator.setPerformative(perf);
xmlcreator.settimeStamp(ts);
xmlcreator.setProtocol(pro);
xmlcreator.setReceiver(rec);
xmlcreator.setContent(con);

try {

    File file = new File("C:\\Users\\Francesco\\Desktop\\writereceiver.xml");
    JAXBContext jaxbContext = JAXBContext.newInstance(XmlCreator.class);
    Marshaller jaxbMarshaller = jaxbContext.createMarshaller();

    // output pretty printed
    jaxbMarshaller.setProperty(Marshaller.JAXB_ENCODING, "UTF-8");
    jaxbMarshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true);

    jaxbMarshaller.marshal(xmlcreator, file);
    jaxbMarshaller.marshal(xmlcreator, System.out);

} catch (JAXBException e) {
    e.printStackTrace();
}

Mentre Questa è xmlCreator.class

package logger;


import javax.xml.bind.annotation.XmlAttribute;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlRootElement;

@XmlRootElement
public class XmlCreator{

    String ontology;
    String timeStamp;
    String performative;
    String sender;
    String protocol;
    String content;
    String receiver;
    int id;

    public String getOntology() {
        return ontology;
    }

    @XmlElement
    public void setOntology(String ontology) {
        this.ontology = ontology;
    }

    public String getPerformative() {
        return performative;
    }

    @XmlElement
    public void setPerformative(String performative) {
        this.performative = performative;
    }

    public String gettimeStamp() {
        return timeStamp;
    }

    @XmlElement
    public void settimeStamp(String timeStamp) {
        this.timeStamp = timeStamp;
    }

    public String getSender() {
        return sender;
    }

    @XmlElement
    public void setSender(String sender) {
        this.sender = sender;
    }

    public String getProtocol() {
        return protocol;
    }

    @XmlElement
    public void setProtocol(String protocol) {
        this.protocol = protocol;
    }

    public String getContent() {
        return content;
    }

    @XmlElement
    public void setContent(String content) {
        this.content = content;
    }

    public String getReceiver() {
        return receiver;
    }

    @XmlElement
    public void setReceiver(String receiver) {
        this.receiver = receiver;
    }



}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...