XML - Cambiar valor de un parametro mediante java

 
Vista:

Cambiar valor de un parametro mediante java

Publicado por maux (1 intervención) el 20/02/2007 00:19:53
Hola!!

Me gustaria cambiar el valor de un parametro de un archivo xml con java y queria ver si alguien me puede dar una idea de como hacerlo. La estructura de las etiquetas seria la siguiente:

<init-param>
<param-name>indice</param-name>
<param-value>23</param-value>
</init-param>

Lo que quiero hacer es modificar el valor del indice, donde pone 23 poner el nuevo valor.

A ver si alguien me puede ayudar!

Muchas gracias de antemano!!!
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Alejandro

Modificación de valor de un parámetro en un archivo XML con Java

Publicado por Alejandro (258 intervenciones) el 14/07/2023 16:41:33
Puedes utilizar la biblioteca Java DOM (Document Object Model) para cargar y modificar el valor de un parámetro en un archivo XML. Aquí hay un ejemplo de cómo podrías lograrlo:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
import java.io.File;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
import javax.xml.transform.OutputKeys;
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerException;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.stream.StreamResult;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
 
public class ModificarValorXML {
    public static void main(String[] args) {
        String archivoXML = "ruta/al/archivo.xml";
        String nuevoValor = "nuevo_valor";
 
        try {
            // Crear el objeto DocumentBuilderFactory
            DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
 
            // Crear el objeto DocumentBuilder
            DocumentBuilder builder = factory.newDocumentBuilder();
 
            // Cargar el archivo XML
            Document documento = builder.parse(new File(archivoXML));
 
            // Obtener el elemento init-param
            NodeList nodosInitParam = documento.getElementsByTagName("init-param");
            Element initParam = (Element) nodosInitParam.item(0);
 
            // Obtener el elemento param-value y modificar su valor
            NodeList nodosParamValue = initParam.getElementsByTagName("param-value");
            Element paramValue = (Element) nodosParamValue.item(0);
            paramValue.setTextContent(nuevoValor);
 
            // Guardar los cambios en el archivo XML
            guardarDocumentoXML(documento, archivoXML);
 
            System.out.println("Valor modificado exitosamente.");
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
 
    public static void guardarDocumentoXML(Document documento, String rutaArchivo) throws TransformerException {
        TransformerFactory transformerFactory = TransformerFactory.newInstance();
        Transformer transformer = transformerFactory.newTransformer();
        transformer.setOutputProperty(OutputKeys.INDENT, "yes");
        DOMSource source = new DOMSource(documento);
        StreamResult result = new StreamResult(new File(rutaArchivo));
        transformer.transform(source, result);
    }
}

Asegúrate de reemplazar `"ruta/al/archivo.xml"` con la ruta real de tu archivo XML y `"nuevo_valor"` con el valor que deseas asignar al parámetro.

Este código carga el archivo XML, busca el elemento `<init-param>`, encuentra el elemento `<param-value>`, y modifica su contenido con el nuevo valor especificado. Luego, los cambios se guardan en el archivo XML.

Recuerda que este es un ejemplo básico y puede requerir modificaciones adicionales según la estructura y el contexto de tu archivo XML.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar