我正在使用jaxb制作xml文件并将其存储在我的电脑中,除了我的电脑上同一个xml文件中的第一个文件之外,我还想制作另一个文件来保存它,例如这是第一个文件:
<File>
<thing1>
</thing1>
</file>
我希望第二个文件是这样的:
<File>
<thing1>
</thing1>
<thin2g>
</thing2>
</file>
这就是我用于编组的Java代码:
public ConfList(Object obj){
this.obj = obj;
}
public void addToLXML() throws IOException, JAXBException {
File file = new File(fileName);
JAXBContext jaxbContext = JAXBContext.newInstance(Xml.class);
Marshaller jaxbMarshaller = jaxbContext.createMarshaller();
jaxbMarshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true);
jaxbMarshaller.marshal(obj, file);
jaxbMarshaller.marshal(obj, System.out);
}
答案 0 :(得分:1)
如果我正确理解您的问题,您希望能够将新元素添加到现有XML文件中吗?所以第一次创建文件时,会添加“thing1”元素,第二次运行程序时,会添加“thing2”元素吗?
假设是这种情况,最好的方法是将现有文件解组为包含带注释的“thing”元素列表的对象(假设它们是相同类型或共享公共父类)。然后只需将新的“东西”添加到列表中,然后将其编组回文件。
如果这不能解决您的问题,请澄清您的要求,我会看到我可以做些什么来帮助您!
史蒂夫