Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - ryhuso

#11
Java / Re: modificar XML
8 Mayo 2020, 11:14 AM
bueno gracias le echare cabeza  :laugh: :laugh:
#12
Java / Re: modificar XML
8 Mayo 2020, 11:07 AM
Básicamente lo que busco es tener un opción de añadir nueva película, si lo pongo como me dices tendría que sobrescribir el xml que ya tengo creado?
#13
Java / Re: modificar XML
8 Mayo 2020, 10:42 AM
No se si es mucha molestia... y para crear un nodo nuevo dentro de películas solo tendría que usar el builder y mandarle los datos por teclado ? y donde lo pondría al principio o al final.
#14
Java / Re: modificar XML
8 Mayo 2020, 10:29 AM
Gracias  por la ayuda.
#15
Java / Re: modificar XML
7 Mayo 2020, 16:34 PM
el problema me pide que pueda modificar el fichero XML y mostrarlo por pantalla
lo que tengo hecho es solo lo de mostrar por pantalla... la opcion de modificar tiene que modificar un tipo de nodo especifico por ejem: "titulo" que tenga nombre "Colonia " cambiarlo por otro


import java.io.File;
import java.io.IOException;
import java.util.Scanner;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
import javax.xml.transform.TransformerConfigurationException;
import javax.xml.transform.TransformerException;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
import org.xml.sax.SAXException;
import xml.Presentar;

public class Maneja {

    public static void main(String[] args) throws TransformerException, TransformerConfigurationException {
        String nodees = "";
        Scanner entrada = new Scanner(System.in);
        System.out.println("\t\tDocumentos XML");
        int opcion = 0;
        while (opcion != 5) {
            System.out.println("\t\t\t\tMenú de Opciones");
            System.out.println("\t\t\t\t================");
            System.out.println("1)Presentar XML");
            System.out.println("2)Añadir nuevo nodo");
            System.out.println("3)Modificar nodo");
            System.out.println("4)Eliminar nodo");
            System.out.println("5)Salir");
            System.out.println("================");
            try {
                opcion = entrada.nextInt();
            } catch (Exception e) {

                entrada = new Scanner(System.in);
            }

            switch (opcion) {
                case 1:
                    Presentar p = new Presentar();
                    p.Presentar();
                    break;
                case 2:

                    break;

                case 3:
                    entrada.nextLine();
                    System.out.println("Ingresa el nodo a modificar");
                    nodees = entrada.nextLine();
                    Presentar m = new Presentar();
                    m.Modificar(nodees);
                    break;
                case 4:

                    break;
                           

                case 5:
                    System.exit(0);
                    break;
                default:
                    System.out.println("Opcion no valida");
                    break;
            }

        }
    }

}


y en otra clase tengo las funciones
import java.io.File;
import java.io.IOException;
import java.util.Scanner;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
import javax.xml.transform.Result;
import javax.xml.transform.Source;
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerConfigurationException;
import javax.xml.transform.TransformerException;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.stream.StreamResult;
import jdk.internal.org.objectweb.asm.commons.GeneratorAdapter;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.NamedNodeMap;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
import org.xml.sax.SAXException;

/**
*
* @author orlando
*/
public class Presentar {

    public void Presentar() {
        try {

            DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();

            DocumentBuilder builder = factory.newDocumentBuilder();

            Document documento = builder.parse(new File("peliculas.xml"));

            NodeList listaPelis = documento.getElementsByTagName("pelicula");

            for (int i = 0; i < listaPelis.getLength(); i++) {

                Node nodo = listaPelis.item(i);

                if (nodo.getNodeType() == Node.ELEMENT_NODE) {

                    Element e = (Element) nodo;

                    NodeList hijos = e.getChildNodes();

                    for (int j = 0; j < hijos.getLength(); j++) {

                        Node hijo = hijos.item(j);

                        if (hijo.getNodeType() == Node.ELEMENT_NODE) {

                            System.out.println(hijo.getNodeName() + ":  " + hijo.getTextContent());
                        }

                    }
                    System.out.println("----------------------------------------------");
                }

            }

        } catch (ParserConfigurationException | SAXException | IOException ex) {
            System.out.println(ex.getMessage());
        }
    }

    public void Añadir() {

    }

    public void Modificar(String nodoModificar) {
        File fichXML = new File("peliculas.xml");
        try {

            DocumentBuilderFactory docFactory = DocumentBuilderFactory.newInstance();
            DocumentBuilder docBuilder = docFactory.newDocumentBuilder();
            Document doc = docBuilder.parse(fichXML);

            doc.getDocumentElement().normalize();

            Node nDam = doc.getFirstChild();

            NodeList nPelis = nDam.getChildNodes();
            for (int cont1N = 0; cont1N < nPelis.getLength(); cont1N++) {

                Node cadaC = nPelis.item(cont1N);

                NodeList nTitulo = cadaC.getChildNodes();
                for (int cont2N = 0; cont2N < nTitulo.getLength(); cont2N++) {

                    Node cadaPeli = nTitulo.item(cont2N);

                    if (nodoModificar.equals(cadaPeli.getNodeName())) {
                        System.out.println("Ingresa el valor del nodo seleccionado que deseas cambiar");
                        Scanner entrada = new Scanner(System.in);
                        String n = entrada.nextLine();
                        if (n.equals(cadaPeli.getNodeValue())) {
                            System.out.println("Ingresa la nueva informacion del nodo"); 
                            String m = entrada.nextLine();
                             nTitulo.item(cont2N).setTextContent(m);
                        }
                    }
                }
            }

            TransformerFactory factoriaTransf = TransformerFactory.newInstance();
            Transformer transformador = factoriaTransf.newTransformer();
            DOMSource source = new DOMSource(doc);

            StreamResult consoleResult = new StreamResult(System.out);
            transformador.transform(source, consoleResult);

            StreamResult fileResult = new StreamResult(new File("peliculas.xml"));
            transformador.transform(source, fileResult);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    public void eliminar() {

       
    }

}

#16
Java / Re: Modificar fichero en java
7 Mayo 2020, 15:28 PM
Gracias por la ayuda.. :laugh:
#17
Java / modificar XML
7 Mayo 2020, 15:26 PM
Hola necesito añadir un nodo y también modificar uno existente del cual preguntare por teclado el nombre del nodo en un archivo XML, no se muy bien como hacerlo, los ejemplos que encontré están en ingles o con datos que no entiendo de donde salen.
#18
Java / Re: Modificar fichero en java
17 Abril 2020, 15:30 PM
el objeto abonado son 3 cadenas
telefono
nombre
factura
#19
Java / Re: Modificar fichero en java
17 Abril 2020, 14:23 PM
Cita de: rub'n en 17 Abril 2020, 13:35 PM
Bueno, y como hiciste el fichero? muestra a ver que tal. parte del código, y se mas descriptivo.

Usa GeSHi si vas a copiar código java.

[ public void altaFactura(Abonado nueva) {
        try {
            File f = new File("facturas_telf.dat");
            FileWriter fw;
            BufferedWriter bw;
            if (f.exists()) {
                fw = new FileWriter(f, true);
                bw = new BufferedWriter(fw);
                bw.newLine();
                bw.write(nueva.numeroAbonado + "%" + nueva.nombre + "%" + nueva.factura);
            } else {
                fw = new FileWriter(f);
                bw = new BufferedWriter(fw);
                bw.write(nueva.numeroAbonado + "%" + nueva.nombre + "%" + nueva.factura);
            }
            bw.close();
            fw.close();
        } catch (Exception e) {
            System.out.println(e);
        }
    }
]
#20
Java / Modificar fichero en java
17 Abril 2020, 13:31 PM
Hola mi problema es que necesito modificar un fichero en java pero no se como hacerlo
busque por la web y no encontre ejemplos claros.

lo que tengo que hacer es que en un fichero que tengo creado de una agenda modificarle el numero de telefono.

public void altaFactura(Abonado nueva) {
        try {
            File f = new File("facturas_telf.dat");
            FileWriter fw;
            BufferedWriter bw;
            if (f.exists()) {
                fw = new FileWriter(f, true);
                bw = new BufferedWriter(fw);
                bw.newLine();
                bw.write(nueva.numeroAbonado + "%" + nueva.nombre + "%" + nueva.factura);
            } else {
                fw = new FileWriter(f);
                bw = new BufferedWriter(fw);
                bw.write(nueva.numeroAbonado + "%" + nueva.nombre + "%" + nueva.factura);
            }
            bw.close();
            fw.close();
        } catch (Exception e) {
            System.out.println(e);
        }
    }



lo que quiero es buscar un numero de telefono numeroAbonado en este caso y cambiar el numero o nombre .... modificarlo .