jueves, 13 de septiembre de 2007

Recorrer fichero XML con JDom desde Java

Necesitamos importar las librerias...

import org.jdom.*;
import org.jdom.input.*;

Para abrir el archivo XML...

SAXBuilder builder = new SAXBuilder(false);
Document doc = builder.build("mi_archivo.xml");

Para recorrerlo...

Primero obtenemos el elemento raíz:
root = doc.getRootElement();

Ahora podemos encontrarnos dos tipos de elementos principales: Tipo Element (etiquetas que solo encontramos una vez y que pueden contener otras) y tipo List (etiquetas que aparecen varias veces).

Para obtener un elemento:
Element elemento = (Element) root.getChild("serverlist");

Para obtener una lista:
List lista = root.getChildren("serverlist");

Ahora suponemos que tenemos el XML siguiente...

<network>
<username atributo="hola">
<serverlist name="sl1">
<server ip="1">
<server ip="2">
</serverlist>
<serverlist name="sl2">
<server ip="3">
</serverlist>
</network>

Lo recorremos así:

SAXBuilder builder = new SAXBuilder(false);
Document doc = builder.build("mi_archivo.xml");

root = doc.getRootElement();

try{
String username=root.getChild("username").getAttributeValue("atributo");
List listaServerlist = root.getChildren("serverlist");
for(Iterator iter=listaServerlist.iterator();iter.hasNext();){
Element serverlist = (Element)iter.next();
System.out.println(serverlist.getAttributeValue("name"));
List listaServers = serverlist.getChildren("server");
for(Iterator iter2=listaServers.iterator();iter2.hasNext();){
Element server = (Element) iter2.next();
System.out.println(server.getAttributeValue("ip"));
}
}
}catch(Exception e){
e.printStackTrace();
}

No hay comentarios: