¿Cómo leer un string XML en Java?

Algo básico pero no menos importante es saber como leer un XML a partir de una cadena de caracteres. A continuación les propongo el código:

byte[] xml = 
        "<miXml propiedad1=\"Hola\" propiedad2=\"Mundo\" />".getBytes();

Document doc = 
    DocumentBuilderFactory.newInstance().newDocumentBuilder().parse(
        new ByteArrayInputStream(
          xml  
        )
);
NodeList e = doc.getElementsByTagName("miXml");
System.out.println(
        e.item(0).getAttributes().getNamedItem("propiedad1").getNodeValue());
System.out.println(
        e.item(0).getAttributes().getNamedItem("propiedad2").getNodeValue());

Las librerías que utilicé son:

import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.ParserConfigurationException;
import org.w3c.dom.DOMException;
import org.w3c.dom.Document;
import org.w3c.dom.NodeList;
import org.w3c.dom.Node;
import org.w3c.dom.Element;
import org.xml.sax.SAXException;

Analista/Desarrollador y cofundador de QBit Mexhico. Tecnologías utilizadas Android, Java (EJB, Servlets, Faces, Groovy & Grails, Maven, Swing), .Net (C#, VB, ASP, MVC), Delphi, Spring, Hibernate, DTSx, Oracle, T-SQL, Firebird, MySQL, MongoDB, NodeJs, ReactJs (Flux). Sistemas Operativos Mac, Ubuntu y Windows.

Twitter LinkedIn 

3 thoughts on “¿Cómo leer un string XML en Java?

  1. ¿Que te parece asi?
    private void leerXML(Node nodo) {
    NodeList hijos = nodo.getChildNodes();

    for (int i = 0; i < hijos.getLength(); i++) {
    Node hijo = hijos.item(i);
    String s = hijo.getParentNode().getNodeName();
    if (hijo.hasChildNodes()) {
    leerXML(hijo);
    } else {

    if (s.equals("primerElemento")) {
    System.out.print(hijo.getNodeValue() );
    } else if (s.equals("segundoElemento")) {
    System.out.print(hijo.getNodeValue()");
    } else if (s.equals("tercerElemento")) {
    System.out.println(hijo.getNodeValue());
    }
    }
    }
    }

    public void imprimirXML() {
    File xmlFile = new File ("xml");
    try{
    DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
    DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
    Document doc = dBuilder.parse(xmlFile);
    Node raiz = doc.getFirstChild();

    leerXML(raiz);
    }catch (Exception e){
    e.printStackTrace();
    }
    }

  2. hola, me pueden ayudar, a renombrar un xml, pero el nombre debe ser de ciertos elemntos que se encuentran dentro del xml?

    ya llegue hasta obtener los elementos (4) que necesito para renombrar el archivo, pero a la hora de renombrar me indica un error que dice, el String cannot be converted to File

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *