
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.Iterator;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
import org.jdom2.Document;
import org.jdom2.Element;
import org.jdom2.JDOMException;
import org.jdom2.input.SAXBuilder;



public class MunicipiosDATOS {
    
    public Map<String, String> leerMunicipios(String idProvincia) throws JDOMException, IOException  {   
                         
        Map<String, String> municipios = new LinkedHashMap<String, String>();
                
        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 listaMunicipios = municipiosElement.getChildren("MUNICIPIO");
                 Iterator iteratorMunicipios = listaMunicipios.iterator(); 
                 while (iteratorMunicipios.hasNext()) {                        
                     Element municipio = (Element)iteratorMunicipios.next(); 
                     municipios.put(municipio.getAttributeValue("id_municipio"), municipio.getText());
                 }                                              
            }
        }             
                          
        return municipios;
    }    
}
