Java - Leer XML con Java

 
Vista:

Leer XML con Java

Publicado por Nacho (2 intervenciones) el 14/03/2011 12:18:39
Hola Buenos Días.
Os comento mi problema: necesito leer un documento XML con el siguiente aspecto

<Cuestionario>
<aspecto titulo="Administración de la Responsabilidad" subtitulo="Política de Calidad">
<pregunta texto="¿Existe algún documento que recoja la política de calidad de la organización?" id="1">
<respuesta id="1" sig="2">

</respuesta>
<respuesta id="2" sig="3">
No
</respuesta>
</pregunta>
<pregunta texto="¿Se encuentra en proceso de creación o desarrollo?" id="2">
<respuesta id="1" sig="12">

</respuesta>
<respuesta id="2" sig="13">
No
</respuesta>
</pregunta>
</aspecto>
</Cuestionario>

Resulta que he buscado muchos códigos acerca de la lectura de documentos XML en Java pero no consigo encontrar como obtener los atributos de cada etiqueta y como ir recorriendo todas las etiquetas que tengo ...

Os agradecería mucho su tuvierais algún método para realizarlo.
Muchas gracias de antemano! Un saludo.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Leer XML con Java

Publicado por Gilberto (378 intervenciones) el 14/03/2011 16:08:30
Busca Java SAX u DOM en google, con cualquiera de estos modelos de parsing xml puedes obtener las etiquetas y sus atributos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Leer XML con Java

Publicado por mayrita (163 intervenciones) el 14/03/2011 16:46:20
pone en google
ejemplos JDOM y te van a salir mil links que todos sirven
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE: Leer XML con Java

Publicado por java_jediknight (13 intervenciones) el 18/03/2011 01:50:06
Mmm... puedes usar el DOM para leer un archivo xml, te pongo un archivo xml (well-formed xml document) de ejemplo (copia y pega su contenido en un notepad y guardalo con extensión .xml)
Documento:
<Company>
<Employee>
<name>Duke of Java</name>
<salary>2500</salary>
<birthday>2011-02-02</birthday>
</Employee>
<Employee>
<name>Tux is Linux</name>
<salary>3000</salary>
<birthday>2011-01-02</birthday>
</Employee>
</Company>

La lectura se ejecuta de la siguiente manera, es un aproximado de lo que necesitas, obviamente tú lo puedes ajustar a tus requerimientos y mejorarlo al nivel que desees:

public void readXML(){
File myfile = new File("c:/user/me/mydocs/company.xml");
DocumentBuilderFactory dbf = DocumentBuilderFactory.getInstance();
DocumentBuilder db = dbf.newDocumentBuilder();
Document mydoc = db.parse(myfile);

mydoc.getDocumentElement().normalize();

NodeList nlist = mydoc.getElementsByTagName("Employee");

for(int i = 0; i< nlist.getLength(); i++){
Node nod = nlist.item(i);
if(nod.getNodeType() == Node.ELEMENT_NODE){
Element e = (Element) nod;
System.out.println(getTagValue("name",e);
System.out.println(getTagValue("salary",e);
System.out.println(getTagValue("birthday",e);
}

}
}

public String getTagValue(String nom, Element e){
NodeList lst = e.getElementByTagName(nom).item(0).getChildNodes();
Node n = (Node) lst.item(0);
return n.getNodeValue();
}

Espero haber podido ayudarte a entender el principio, luego puedes ajustarlo a los requerimientos que buscas y mejorarlo.

Saludos y éxitos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar