
package datos;

import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.nio.charset.StandardCharsets;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import org.jdom2.Document;
import org.jdom2.Element;
import org.jdom2.JDOMException;
import org.jdom2.input.SAXBuilder;



public class MunicipiosDATOS {
    
    public List<String> leerMunicipios(String idProvincia) throws JDOMException, IOException  {   
                         
        List<String> listaMunicipios = new ArrayList();
                
        Document document = new SAXBuilder().build(new InputStreamReader(new FileInputStream(new File("xml\\municipios.xml")), StandardCharsets.ISO_8859_1));          
        // Document document = new SAXBuilder().build("xml\\municipios.xml");
        
        Element raiz = document.getRootElement();
        
        boolean encontradaProvincia = false;
        List listaProvincias = raiz.getChildren("PROVINCIA");
        Iterator iteratorProvincias = listaProvincias.iterator(); 
        while (iteratorProvincias.hasNext() && !encontradaProvincia)
          {                        
            Element provincia = (Element)iteratorProvincias.next(); 
            
            if (idProvincia.compareTo(provincia.getAttributeValue("id_provincia")) == 0){
                 encontradaProvincia = true;
                 Element municipiosElement = provincia.getChild("MUNICIPIOS");
                 List listaMunicipiosXML = municipiosElement.getChildren("MUNICIPIO");
                 Iterator iteratorMunicipios = listaMunicipiosXML.iterator(); 
                 while (iteratorMunicipios.hasNext()) {                        
                     Element municipio = (Element)iteratorMunicipios.next(); 
                     listaMunicipios.add(municipio.getAttributeValue("id_municipio")+" - "+municipio.getText()); 
                 }                                              
            }
        }             
                          
        return listaMunicipios;
    }    
}
