Я пытаюсь изменить XML-документ с помощью JDOM, проблема в том, что в файле ничего не меняется.Изменение XML с помощью JDOM
Я искал в Интернете, чтобы изменить файл, и на любом сайте объясняется, как сохранить файл.
Я хотел бы, чтобы вы сказали мне, что я делаю неправильно, или, если есть другой способ.
код Метод:
public void ocuparPlazaParking(){
//Se crea un SAXBuilder para poder parsear el archivo
SAXBuilder builder = new SAXBuilder();
File xmlFile = new File("C:/Users/Alejandro/Parking/parking.xml");
try
{
Document document = (Document) builder.build(xmlFile);
//Se obtiene la raiz 'parking'
Element elementoParking = document.getRootElement();
//Obtengo las plantas
List listadePlantas = elementoParking.getChildren("planta");
for (int i=0; i < listadePlantas.size(); i++){
Element elementoPlanta = (Element) listadePlantas.get(i);
//Obtengo las filas
List listadeFilas = elementoPlanta.getChildren("fila");
for (int j = 0; j < listadeFilas.size(); j++){
//obtengo la fila
Element elementoFila = (Element) listadeFilas.get(j);
//Obtengo los bloques
List listadeBloques = elementoFila.getChildren("bloque");
for (int k = 0; k < listadeBloques.size(); k++) {
Element elementoBloque = (Element) listadeBloques.get(k);
List listadeElementos = elementoBloque.getChildren("elemento");
for (int l = 0; l < listadeElementos.size(); l++){
Element elementoElemento = (Element) listadeElementos.get(l);
if(elementoElemento.getChildText("numero").equals("1003")){
elementoElemento.getChild("estado").setText("ocupada");
}
}
}
}
}
}
catch (IOException io) {
System.out.println(io.getMessage());
}catch (JDOMException jdomex) {
System.out.println(jdomex.getMessage());
}
}
И DTD в XML является:
<?xml version="1.0" encoding="UTF-8"?>
<!ELEMENT parking (planta+)>
<!ATTLIST parking nombreParking CDATA #REQUIRED>
<!ATTLIST parking direccion CDATA #REQUIRED>
<!ATTLIST parking poblacion CDATA #REQUIRED>
<!ATTLIST parking pais CDATA #IMPLIED>
<!ELEMENT planta (fila+)>
<!ATTLIST planta numPlazas CDATA #REQUIRED>
<!ATTLIST planta numeroPlanta CDATA #REQUIRED>
<!ATTLIST planta tamano CDATA #IMPLIED>
<!ELEMENT fila (bloque+)>
<!ATTLIST fila altoFila CDATA #REQUIRED>
<!ATTLIST fila anchoFila CDATA #REQUIRED>
<!ELEMENT bloque (elemento+)>
<!ATTLIST bloque anchoBloque CDATA #REQUIRED>
<!ELEMENT elemento (tipo,subtipo,estado,posicion,longitud,numero)>
<!ELEMENT tipo (#PCDATA)>
<!ELEMENT subtipo (#PCDATA)>
<!ELEMENT estado (#PCDATA)>
<!ELEMENT longitud (#PCDATA)>
<!ELEMENT posicion (#PCDATA)>
<!ELEMENT numero (#PCDATA)>
Вы читаете xml-файл в DOM и изменяете DOM. Я не вижу, где вы записываете измененный DOM обратно в файл. Вы в какой-то момент меняете файл? – prabugp
Я не знаю, как сохранить изменения в том же xml – Cence
@prabugp - обратите внимание, что пользователь загружается в JDOM, а не DOM ... b ut, вы правы, что его «не сохраняют обратно». – rolfl