Este método pertenece a la clase Document
Element getRootElement(); //cojer el nodo raiz del documento.
Estos métodos pertenecen a la clase Element:
String getText(); //Capturar el texto de una etiqueta o elemento. List getChildren(); //Coger todos los elementos que cuelgan del Element. List getChildren(String nombre); //Coger todos los elementos que tengan ese nombre List getMixedContent(); //Para recuperar todo(comentarios, PIs, elementos,...) // de lo que cuelga del Element. Element getChild (String nombre); //Coger el primer hijo que tenga ese nombre. String getAttributeValue(String nombre); //Coger el valor del atributo que pasamos como parámetro. Attribute getAttribute(String nombre); //Coger el atributo que tenga ese nombre y para recuperar //el valor de ese atributo se //utilizaría el método del attribute: String getValue();Nuestro primer programa
Dado el siguiente documento XML:
<?xml version="1.0"?>
<liga tipo="Champions League">
<equipo>
<club valoracion="10" ciudad="Bilbao">Athletic Club Bilbao</club>
<presidente>Uria</presidente>
<plantilla>
<nombre>Julen Guerrero</nombre>
<nombre>Joseba Etxeberria</nombre>
<nombre>Ismael Urzaiz</nombre>
</plantilla>
</equipo>
<equipo>
<!-- no os piqueis ;-) -->
<club valoracion="5" ciudad="Madrid">Real Madrid</club>
<presidente>Mandamas</presidente>
<plantilla>
<!-- no pongo nombres propios por si acaso -->
<nombre>Bota de oro</nombre>
<nombre>Milloneti</nombre>
<nombre>Canterano quemado</nombre>
</plantilla>
<conextranjeros/>
</equipo>
<arbitros>
<nombre>No doy una</nombre>
<nombre>Rafanomejodas</nombre>
</arbitros>
</liga>
Vamos a hacer un programa que lo lea y nos muestra cierta información. Este sería el codigo:
import java.io.*;
import java.util.*;
import org.jdom.*;
import org.jdom.input.*;
import org.jdom.output.*;
public class Ejemplo {
public static void main(String[] args) {
try {
SAXBuilder builder=new SAXBuilder(false);
//usar el parser Xerces y no queremos
//que valide el documento
Document doc=builder.build("liga.xml");
//construyo el arbol en memoria desde el fichero
// que se lo pasaré por parametro.
Element raiz=doc.getRootElement();
//cojo el elemento raiz
System.out.println("La liga es de tipo:"+
raiz.getAttributeValue("tipo"));
//todos los hijos que tengan como nombre plantilla
List equipos=raiz.getChildren("equipo");
System.out.println("Formada por:"+equipos.size()+" equipos");
Iterator i = equipos.iterator();
while (i.hasNext()){
Element e= (Element)i.next();
//primer hijo que tenga como nombre club
Element club =e.getChild("club");
List plantilla=e.getChildren("plantilla");
System.out.println
(club.getText()+":"+"valoracion="+
club.getAttributeValue("valoracion")+","+
"ciudad="+club.getAttributeValue("ciudad")+","+
"formada por:"+plantilla.size()+"jugadores");
if (e.getChildren("conextranjeros").size()==0)
System.out.println("No tiene extranjeros");
else System.out.println("Tiene extranjeros");
}
// Dejamos de mano del lector el sacar el nombre
//de los arbitros, animate!!
}catch (Exception e){
e.printStackTrace();
}
}
}
Usuarios que han visto este tema también han visto...
- Singletons en Java, el patrón instancia única
- Obtener información de clases Java en aplicaciones web
- Entrada por Ratón
- Terminación del constructor en Java
- Paso de parámetros a funciones Java
Información legal | Política de Privacidad | Contacte con nosotros
Otro proyecto de Factoría de Internet. Copyright© 2003-2011 Factoría de Internet S.L.. Todos los derechos reservados.