这是我的代码:
try
{
Document fichero = (Document) builder.build( xmlFile );
Element rootNode = fichero.getRootElement();
List list = rootNode.getChildren( "fichada" );
for ( int i = 0; i < list.size(); i++ )
{
Element tabla = (Element) list.get(i);
String term = tabla.getChildTextTrim("N_Terminal");
String tarj = tabla.getChildTextTrim("Tarjeta");
String fech = tabla.getChildTextTrim("Fecha");
String horaEnXML = tabla.getChildTextTrim("Hora");
String caus = tabla.getChildTextTrim("Causa");
//HERE I WANT TO DELETE THE NODE
}
} catch ( IOException io ) {
System.out.println( io.getMessage() );
} catch ( JDOMException jdomex ) {
System.out.println( jdomex.getMessage() );
}
我需要在保存变量中的值之后删除节点,我该怎么办?
答案 0 :(得分:1)
“删除”节点有几个不同的含义。您可以从内存中的JDOM模型中删除该节点,此外,您可以在没有该节点的情况下覆盖磁盘上的文件,以保存修改后的文档。
要从XML文档中删除节点,请“分离”它:
prepareForSegue
分离.....
String caus = tabla.getChildTextTrim("Causa");
tabla.detach();
元素后,它将不再是内存文档的一部分,但您仍然可以将tabla作为XML的“片段”引用。
如果要将修改后的文档保存回文件,则需要将XML写回文件:
tabla
此外,你真的应该使用JDOM 2.x,其中泛型将有助于使你的代码更整洁:
try (FileOutputStream fos = new FileOutputStream(xmlfile)) {
XMLOutputter xmlout = new XMLOutputter();
xmlout.output(fichero, fos);
}