Download CONSEJERIA DE EDUCACION Python y XML. Ejercicios (I

Document related concepts
no text concepts found
Transcript
CONSEJERIA DE EDUCACION
IES Gonzalo Nazareno
Python y XML. Ejercicios (I)
Utilizando el fichero provinciasypoblaciones.xml, crea distintos programas en python, utilizando la libreria lxml, que realicen las siguientes funciones:
1. Programa que lista todas las provincias.
from lxml import etree
arbol = etree . parse (" provinciasypoblaciones .xml ")
provincias = arbol . xpath ("/ lista / provincia / nombre ")
for provincia in provincias :
print provincia .text
2. Programa que lista todos los municipios.
from lxml import etree
arbol = etree . parse (" provinciasypoblaciones .xml ")
localidades = arbol . xpath ("/ lista / provincia / localidades / localidad ")
for localidad in localidades :
print localidad .text
3. Programa que muestra la lista de provincias y el total de municipios que tiene cada una.
from lxml import etree
arbol = etree . parse (" provinciasypoblaciones .xml ")
provincias = arbol . xpath ("/ lista / provincia ")
for provincia in provincias :
num_loc = provincia .xpath (" count( localidades / localidad )")
nombre_prov = provincia .find (" nombre ")
print " %s: %d localidades " % ( nombre_prov .text , num_loc )
4. Programa que lee por teclado el nombre de una provincia y muestra sus municipios.
from lxml import etree
arbol = etree . parse (" provinciasypoblaciones .xml ")
provincia = raw_input (" Dame la provincia : "). title ()
localidades = arbol . xpath ("/ lista / provincia [ nombre=' %s ']/ localida \
des/ localidad " % provincia )
for localidad in localidades :
print localidad .text
2
5. Programa que lee por teclado el nombre de un municipio y muestra la provincia donde
se encuentra.
from lxml import etree
arbol = etree . parse (" provinciasypoblaciones .xml ")
localidad = raw_input (" Dame la localidad : "). title ()
loc = arbol . xpath ("/ lista / provincia / localidades / localidad [ contains \
(text(),' %s ')]" % localidad )
for i in loc:
provincia = i. getparent (). getparent (). find (" nombre "). text
print " %s se encuentra en %s" % (i.text , provincia )