El siguiente post explica como usar la librería JDOM que permite trabajar los XML con java. Podemos acceder a la API y su documentación en la pagina oficial. A su vez pueden descargar el código de ejemplo que utilizo desde GitHub.
Hay que tener en cuenta 2 cosas:
1- Es necesario bajar la API de JDOM
2- Conocer la estructura con la que se va a trabajar.
El siguiente método forma parte del código que se encuentra en GitHub y explica modestamente como se utiliza la API JDOM.
public void LeerPrimerNivel() {
// Se crea un SAXBuilder para poder parsear el archivo
builder = new SAXBuilder();
xmlFile = new File(path.leerPath());
try {
//Se parcea el archivo xml para crear el documento
//que se va a tratar.
documento = (Document) builder.build(xmlFile);
// Se obtiene la raiz del documento. En este caso 'cruisecontrol'
rootNode = documento.getRootElement();
// Obtengo el tag "info" como nodo raiz para poder trabajar
// los tags de éste.
rootNode_Level2 = rootNode.getChild("info");
// Obtengo los nodos "property" del tag info y los almaceno en
// una lista.
lista = rootNode_Level2.getChildren("property");
//Imprimo por consola la lista.
for (int i = 0; i < lista.size(); i++){
System.out.println(((Element)lista.get(i)).getAttributeValue("value"));
}
} catch (IOException io) {
System.out.println(io.getMessage());
}
catch (JDOMException jdomex) {
System.out.println(jdomex.getMessage());
}
}
Como resultado, obtenemos la siguiente salida por consola
FormulasMatematicas
20130430111319
2013-04-30T16:48:55
20130430134855
build.2
300
true
/opt/cruisecontrol-bin-2.8.4/logs/FormulasMatematicas
log20130430134855.xml
20130430111319
El método build() parsea y construye el documento que va a tratar el programa a traves de la API JDOM.
documento = (Document) builder.build(xmlFile);
Se crea un element que va a contener el Nodo Raíz del XML que se esta parseando. El método getRootElement() va a retornar el elemento raíz del documento XML.
rootNode = documento.getRootElement();
El método get.Child() devuelve un Nodo hijo del XML/ el Nodo del segundo nivel del elemento que se ha definido como Nodo Raíz.
rootNode_Level2 = rootNode.getChild("STRING");
El método getChildren() nos retorna una lista con el nombre de los elementos encerrados en los tags.
lista = rootNode_Level2.getChildren("property");
Por último el método getAttributeValue() nos va a retornar el valor que poseen los elementos que nos devuelve el método getChildren().
getAttributeValue("value")