创建 xml 文档并添加或仅在文档存在时添加
create xml document and add or just add if document exixts
这是我的代码:
Element FICHADAS = new Element("FICHADAS");
Document doc = new Document(FICHADAS);
try{
Element fichada = new Element("fichada");
//Nº TERMINAL
fichada.addContent(new Element("N_Terminal").setText(props.getProperty("N_TERMINAL")));
//TARJETA
fichada.addContent(new Element("Tarjeta").setText(codOperario));
//FECHA
Date fechaFormatoFecha = new Date( );
fichada.addContent(new Element("Fecha").setText(formatoFecha.format(fechaFormatoFecha)));
//HORA
Date fechaFormatoHora = new Date( );
fichada.addContent(new Element("Hora").setText(formatoHora.format(fechaFormatoHora)));
//CAUSA
fichada.addContent(new Element("Causa").setText("2"));
doc.getRootElement().addContent(fichada);
XMLOutputter xmlOutput = new XMLOutputter();
xmlOutput.setFormat(Format.getPrettyFormat());
xmlOutput.output(doc, new FileWriter("fichadas.xml"));
} catch(IOException io){
}
我每次执行程序时都会创建一个新文档,我只想在不存在的情况下创建它,如果文档存在,只需添加内容即可。
看看这个 constructor of Filewriter
Constructs a FileWriter object given a file name with a boolean indicating whether or not to append the data written.
此外 FIRST 您必须检查文件是否存在:
File fichadas=new File("fichadas.xml");
if (fichadas.exists()){
// append
xmlOutput.output(doc, new FileWriter("fichadas.xml", true));
} else {
// create
xmlOutput.output(doc, new FileWriter("fichadas.xml"));
}
UPDATE 避免声明,必须使用Format.setOmitDeclaration(boolean)
。所以你必须在XMLOutputter
中添加一个格式:
// declare XMLOutputter
XMLOutputter xmlOutput = new XMLOutputter();
// declare Format
Format fmt = Format.getPrettyFormat();
// set omit declaration to true
fmt.setOmitDeclaration(true);
// assign Format to XMLOutputter
xmlOutput.setFormat(fmt);
我想这就是你想要做的。刚刚给了一个伪代码:
File f = new File("fichadas.xml");
if(f.exists()){
//open file and write in it
}
else{
//create new file
}
这是我的代码:
Element FICHADAS = new Element("FICHADAS");
Document doc = new Document(FICHADAS);
try{
Element fichada = new Element("fichada");
//Nº TERMINAL
fichada.addContent(new Element("N_Terminal").setText(props.getProperty("N_TERMINAL")));
//TARJETA
fichada.addContent(new Element("Tarjeta").setText(codOperario));
//FECHA
Date fechaFormatoFecha = new Date( );
fichada.addContent(new Element("Fecha").setText(formatoFecha.format(fechaFormatoFecha)));
//HORA
Date fechaFormatoHora = new Date( );
fichada.addContent(new Element("Hora").setText(formatoHora.format(fechaFormatoHora)));
//CAUSA
fichada.addContent(new Element("Causa").setText("2"));
doc.getRootElement().addContent(fichada);
XMLOutputter xmlOutput = new XMLOutputter();
xmlOutput.setFormat(Format.getPrettyFormat());
xmlOutput.output(doc, new FileWriter("fichadas.xml"));
} catch(IOException io){
}
我每次执行程序时都会创建一个新文档,我只想在不存在的情况下创建它,如果文档存在,只需添加内容即可。
看看这个 constructor of Filewriter
Constructs a FileWriter object given a file name with a boolean indicating whether or not to append the data written.
此外 FIRST 您必须检查文件是否存在:
File fichadas=new File("fichadas.xml");
if (fichadas.exists()){
// append
xmlOutput.output(doc, new FileWriter("fichadas.xml", true));
} else {
// create
xmlOutput.output(doc, new FileWriter("fichadas.xml"));
}
UPDATE 避免声明,必须使用Format.setOmitDeclaration(boolean)
。所以你必须在XMLOutputter
中添加一个格式:
// declare XMLOutputter
XMLOutputter xmlOutput = new XMLOutputter();
// declare Format
Format fmt = Format.getPrettyFormat();
// set omit declaration to true
fmt.setOmitDeclaration(true);
// assign Format to XMLOutputter
xmlOutput.setFormat(fmt);
我想这就是你想要做的。刚刚给了一个伪代码:
File f = new File("fichadas.xml");
if(f.exists()){
//open file and write in it
}
else{
//create new file
}