Para leer el archivo se puede hacer de la siguiente manera:
import java.io.File;
import java.io.IOException;import java.util.List;
import org.jdom.Document; //
import org.jdom.Element; // Librerías
import org.jdom.JDOMException; // JDOM
import org.jdom.input.SAXBuilder; //
...
public void cargarXml(){
//Se crea un SAXBuilder para poder parsear el archivo
SAXBuilder builder = new SAXBuilder();
File xmlFile = new File( "archivo.xml" );
try{
//Se crea el documento a traves del archivo
Document document = (Document) builder.build( xmlFile );
//Se obtiene la raiz 'tables'
Element rootNode = document.getRootElement();
//Se obtiene la lista de hijos de la raiz 'tables'
List list = rootNode.getChildren( "tabla" );
//Se recorre la lista de hijos de 'tables'
for ( int i = 0; i < list.size(); i++ ){
//Se obtiene el elemento 'tabla'
Element tabla = (Element) list.get(i);
//Se obtiene el atributo 'nombre' que esta en el tag 'tabla'
String nombreTabla = tabla.getAttributeValue("nombre");
System.out.println( "Tabla: " + nombreTabla );
//Se obtiene la lista de hijos del tag 'tabla'
List lista_campos = tabla.getChildren();
System.out.println( "\tNombre\t\tTipo\t\tValor" );
//Se recorre la lista de campos
for ( int j = 0; j < lista_campos.size(); j++ ){
//Se obtiene el elemento 'campo'
Element campo = (Element)lista_campos.get( j );
//Se obtienen los valores que estan entre los tags ' '
//Se obtiene el valor que esta entre los tags ' '
String nombre = campo.getChildTextTrim("nombre");
//Se obtiene el valor que esta entre los tags ' '
String tipo = campo.getChildTextTrim("tipo");
//Se obtiene el valor que esta entre los tags ' '
String valor = campo.getChildTextTrim("valor");
System.out.println( "\t"+nombre+"\t\t"+tipo+"\t\t"+valor);
}
}
}catch ( IOException io ) {
System.out.println( io.getMessage() );
}catch ( JDOMException jdomex ) {
System.out.println( jdomex.getMessage() );
}
}