|    
			
				29/03/2015, 11:12
			
			
			  | 
  |   |  |  |  |  Fecha de Ingreso: julio-2010 
						Mensajes: 110
					 Antigüedad: 15 años, 3 meses Puntos: 3 |  | 
  |  Respuesta: Leer XML varios bucles.  
  Mire el XML es como así:
 <Ciutats>
 <Ciutat>
 <Nom>Torremolinos1</Nom>
 <Provincia>Malaga</Provincia>
 <Dades>
 <Dada dia='2111-11-11'>
 <TempMax>1.0</TempMax>
 <TempMin>7.0</TempMin>
 <TempAve>8.7</TempAve>
 <VMax>8.0</VMax>
 <VRatxa>28.0</VRatxa>
 <Prec>29.8</Prec>
 </Dada>
 </Dades>
 </Ciutat>
 <Ciutat>
 <Nom>Torremolinos2</Nom>
 <Provincia>Malaga</Provincia>
 <Dades>
 <Dada dia='2111-01-14'>
 <TempMax>2.0</TempMax>
 <TempMin>7.0</TempMin>
 <TempAve>8.7</TempAve>
 <VMax>8.0</VMax>
 <VRatxa>28.0</VRatxa>
 <Prec>29.8</Prec>
 </Dada>
 </Dades>
 </Ciutat>
 <Ciutat>
 <Nom>Torremolinos3</Nom>
 <Provincia>Malaga</Provincia>
 <Dades>
 <Dada dia='2111-01-18'>
 <TempMax>3.0</TempMax>
 <TempMin>7.0</TempMin>
 <TempAve>8.7</TempAve>
 <VMax>8.0</VMax>
 <VRatxa>28.0</VRatxa>
 <Prec>29.8</Prec>
 </Dada>
 <Dada dia='2222-11-12'>
 <TempMax>4.0</TempMax>
 <TempMin>7.0</TempMin>
 <TempAve>8.7</TempAve>
 <VMax>8.0</VMax>
 <VRatxa>28.0</VRatxa>
 <Prec>29.8</Prec>
 </Dada>
 </Dades>
 </Ciutat>
 </Ciutats>
 
 
 
 El problema de lo que uso para leerlo es que lo he sacado de un ejemplo que nos dio el profesor y que supe adaptar para leer una sola ciudad.
 
 Su ejemplo era como así:
 
 
 import java.io.File;
 import java.io.IOException;
 
 import javax.xml.parsers.*;
 
 import org.apache.commons.cli.*;
 import org.w3c.dom.*;
 import org.xml.sax.SAXException;
 
 public class Main {
 
 /**
 * Run the examples of use org.apache.commons.cli for arguments and read XML
 * file the construct the object {@link Lecturer}
 * @param args -h | -f path/of/file.xml
 * @throws ParseException
 * @throws IOException
 * @throws ParserConfigurationException
 * @throws SAXException
 */
 public static void main(String[] args) throws ParseException, IOException, ParserConfigurationException, SAXException  {
 
 String fileName = "xml/Data.xml";
 /**
 * Read XML file
 */
 DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
 DocumentBuilder builder = factory.newDocumentBuilder();
 File file = new File(fileName);
 Document document = builder.parse(file);
 
 // Return ed element of XML file.
 Element ed = document.getDocumentElement();
 
 // Return lecturer elements list
 NodeList lecturerList = ed.getElementsByTagName("Lecturer");
 if(lecturerList != null && lecturerList.getLength() > 0) {
 for (int i=0; i<lecturerList.getLength(); i++){
 
 //Get a lecturer
 Element lecturer = (Element) lecturerList.item(i);
 
 //Get lecturer's email attribute
 String email = lecturer.getAttribute("email");
 
 //Get lecturer's name label
 String name = new String();
 NodeList nameList = lecturer.getElementsByTagName("name");
 if(nameList != null && nameList.getLength() > 0) {
 Element nameElement = (Element)nameList.item(0);
 name = nameElement.getFirstChild().getNodeValue();
 
 }
 //Get lecturer's surnames label
 String surnames = new String();
 NodeList surnamesList = lecturer.getElementsByTagName("surnames");
 if(surnamesList != null && surnamesList.getLength() > 0) {
 Element surnamesElement = (Element)surnamesList.item(0);
 surnames = surnamesElement.getFirstChild().getNodeValue();
 
 }
 System.out.println(" LECTURER "+(i+1));
 System.out.println("-------------");
 System.out.println(" NAME:  "+name+" "+surnames);
 System.out.println(" EMAIL: "+email);
 System.out.println(" ");
 
 }
 }
 }
 
 }
 
 
 
 En el ejercicio anterior yo lo adapté para leer de una ciudad, su nombre, provincia, y entonces leía las temperaturas, los días, vientos.... Funcionó
     |