如何将元素添加到XML文件? [英] How Add element to XML file?

查看:108
本文介绍了如何将元素添加到XML文件?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我在生成我的类时使用了JAXB但是在我的XML文件中插入元素时遇到问题,所以我在我的文件XML中插入了第一个时间元素,但是当第二次插入时,所有文件都清晰并重新编写XML。我有类(项目,层),我是写插入项目和图层到XML文件的方法。请帮助我如何在XML中插入项目,然后在每次写入XML时用XML输出清晰的xml文件中的图层。



我的班级项目:



I used JAXB in generate my class but I have problem when insert element in my XML file, so I insert first time element in my file XML, but when insert second time all file is clear and re-write XML. I have classes (project,layer) and I am write method for insert Project and layer to XML file. Please help me how I can insert project in XML then insert layer in XML with out clear xml file each time write XML.

This my class project :

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

    @XmlElement(name = "Layer")
    protected List<Layer> layer;
    @XmlAttribute(name = "name")
    protected String name; 

   public List<Layer> getLayer() {
        if (layer == null) {
            layer = new ArrayList<Layer>();
        }
        return this.layer;
    }
    public String getName() {
        return name;
    }
    public void setName(String value) {
        this.name = value;
    }
}





我的班级层:





this my class Layer:

@XmlAccessorType(XmlAccessType.FIELD)
public class Layer {
    @XmlElement(name = "LayerName", required = true)
    protected String layerName;
    @XmlAttribute(name = "idLayer")
    protected int idLayer;
    public String getLayerName() {
        return layerName;
    }
    public void setLayerName(String value) {
        this.layerName = value;
    }
    public int getIdLayer() {
        return idLayer;
    }
    public void setIdLayer(int i) {
        this.idLayer = i;
    }
}



方法插入项目:




Method insert project:

 public boolean Insert(Project entity) {
    Project pr = new Project();
    pr.setName(entity.getName());
    try {
         JAXBContext jc = JAXBContext.newInstance(Project.class);
         javax.xml.bind.Marshaller marshaller = jc.createMarshaller();
         marshaller.setProperty(marshaller.JAXB_FORMATTED_OUTPUT, Boolean.TRUE);
         File XMLfile = new File("Projects//asdad//ProjectDataBase.xml");
         marshaller.marshal(pr, XMLfile);
    } catch (JAXBException e) {
        e.printStackTrace();
    }
    return false;
}



方法插入图层:




Method insert Layer:

 public boolean Insert(Layer entity) {
    Project pr = new Project();
    pr.setName(pr.getName());
    Layer addLayer = new Layer();
    addLayer.setIdLayer(entity.getIdLayer());
    addLayer.setLayerName(entity.getLayerName());
    pr.getLayer().add(addLayer);

    try {
         JAXBContext jc = JAXBContext.newInstance(Project.class);
         javax.xml.bind.Marshaller marshaller = jc.createMarshaller();
         marshaller.setProperty(marshaller.JAXB_FORMATTED_OUTPUT, Boolean.TRUE);
         File XMLfile = new File("Projects//asdad//ProjectDataBase.xml");
         marshaller.marshal(pr, XMLfile);
    } catch (JAXBException e) {
        e.printStackTrace();
    }
    return false;
}

推荐答案

这篇关于如何将元素添加到XML文件?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆