Las posibilidades de Python con XML son muchas pero, generalmente queremos realizar operaciones sencillas como sería leer el contenido de una etiqueta en concreto. Esto, no está tan claro en la documentación (al menos para mi) y he aquí una pequeña receta de como conseguirlo con minidom:
#Importamos el módulo
from xml.dom import minidom
#Creamos una función que busca un tag dado en un fichero XML
#y nos devuelve una lista con todos los contenidos que había
#dentro de los tags.
def buscaXMLTag(xmlFile,xmlTag):
resultList = []
try:
dom = minidom.parse(xmlFile)
elements = dom.getElementsByTagName(xmlTag)
if len(elements) != 0:
for i in range(0,len(elements)):
resultList.extend([elements[i].childNodes[0].nodeValue])
else:
print 'xxx No hay elementos en el fichero XML con la etiqueta ' + xmlTag
except:
print 'xxx El fichero no existe o está mal formado.'
print 'xxx Path del fichero: ' + xmlFile
print 'xxx Etiqueta sobre la que se realizó la búsqueda: ' + xmlTag
return resultList
#Ejecutamos la función y sacamos por pantalla todo el contenido encontrado
datos = buscaXMLTag('/home/jose/test.xml','titulo')
for elemento in datos:
print elemento
17.5.07
Suscribirse a:
Enviar comentarios (Atom)
8 comentarios:
hola. Pero primero que todo como hago para importar el archivo xml donde estan los datos
Como puedes ver, es una variable que se pasa por valor en el constructor del método
def buscaXMLTag(xmlFile,xmlTag)
donde xmlFile es lo que buscas.
cuando copio tu codigo y lo trato de invocar me saca un error en la linea de comnado que dice lo siguiente SyntaxError: Non Ascii character '\xe1' en la dirección donde tengo el archivo .py, a que se debe este error? espero una pronta respuesta
Mete estas líneas al inicio del código:
#!/usr/bin/python
# -*- coding: iso-8859-15 -*-
import os, sys
Hola. Tenes algún mail por el que pueda contactarte? Saludos. Francisco.
Hola. Tenes algún mail por el que pueda contactarte? Saludos. Francisco.
joservilas (at) gmail (dot) com
Muchas gracias este código me fue muy util para hacer búsqueda en en archivos XML.
Publicar un comentario