Leer y procesar un fichero XML desde Java

Friday, February 24, 2012 19:39
Posted in category Informática

Aquí les dejo un corto pero simple ejemplo de cómo procesar de un String con una cadena XML desde Java:

 
import java.io.StringReader;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.DocumentBuilder;
import org.w3c.dom.Document;
import org.w3c.dom.NodeList;
import org.w3c.dom.Node;
import org.w3c.dom.Element;
import org.xml.sax.InputSource;
 
 
public class Main {
 
 
    public static void main(String[] args) {
 
            String xml = "<agenda>"
                         + "<contacto tipo=\"amigo\">"
                         + "    <nombre>Oscar</nombre>"
                         + "    <apellido>Carrascosa</apellido>"
                         + "    <edad>28</edad>"
                         + "</contacto>"
                         + "<contacto tipo=\"amiga\">"
                         + "    <nombre>Hellen</nombre>"
                         + "    <apellido>McGregor</apellido>"
                         + "    <edad>31</edad>"
                         + "</contacto>"
                         + "</agenda>";
 
 
 try{
      DocumentBuilderFactory domFactory = DocumentBuilderFactory.newInstance();
      domFactory.setNamespaceAware(true); 
      DocumentBuilder builder = domFactory.newDocumentBuilder();
      Document doc = builder.parse(new InputSource(new StringReader(xml)));
 
      NodeList todosContactos = doc.getElementsByTagName("contacto");
      Node unContacto             = todosContactos.item(0);
 
      if (unContacto.getNodeType() == Node.ELEMENT_NODE){
          Element elemento = (Element) unContacto;
          System.out.println(elemento.getAttribute("tipo"));
          NodeList lista = elemento.getElementsByTagName("nombre").item(0).getChildNodes();
          Node valor = (Node) lista.item(0);
          System.out.println( valor.getNodeValue());         
      }
    }catch(Exception ex){
          ex.printStackTrace();
    }
 
 
}
 
 
}
You can leave a response, or trackback from your own site.

Leave a Reply