jueves, 9 de abril de 2009

AAP Bloque T2.5 ejercicio2:

Hacer un programa en Java, o en Python, o en PHP, o en algún otro lenguaje que haga lo mismo.
import org.w3c.dom.*;
import java.io.*;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.DocumentBuilder;

public class bloqueT252
{
public static void main (String [] args)
{
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance ( );
Document documento = null;

try
{
DocumentBuilder builder = factory.newDocumentBuilder();
documento = builder.parse( new File(args[0]) );
}
catch (Exception spe)
{
System.out.println("Error al leer el archivo");
}

// Obtenemos el nodo raíz del documento XML.
Node nodoRaiz = documento.getFirstChild();
NodeList listaNodos = documento.getChildNodes();
for (int i=0; i<listaNodos.getLength(); i++)
if (listaNodos.item(i).getNodeName().equals("micasa"))
nodoRaiz = listaNodos.item(i);
/* Esto hay que hacerlo porque los comentarios también cuentan como nodos */


// Obtenemos la lista de nodos hijos del nodo Raiz.
NodeList listaNodosHijo = nodoRaiz.getChildNodes();

// Hacemos un barrido por todos los nodos hijo
Node nodoHijo;
for (int i=0; i<listaNodosHijo.getLength(); i++)
{
nodoHijo = listaNodosHijo.item(i);

// Nos quedamos con los que su nombre de etiqueta es "habitacion"
if (nodoHijo.getNodeName().equals("habitacion"))
{
// Obtenemos el atributo "id" y lo mostramos por pantalla.
NamedNodeMap atributos = nodoHijo.getAttributes();
Node id = atributos.getNamedItem("id");
System.out.println("Habitacion: "+id.getNodeValue());
}
}
}
}

El código se puede descargar de aquí

No hay comentarios:

Publicar un comentario