Foros del Web » Programando para Internet » Python »

xmldom

Estas en el tema de xmldom en el foro de Python en Foros del Web. Saludos compañeros. Estoy con un problemilla que me trae de cabeza. Aparentemente por todo lo que he buscado en internet parece fácil pero yo o ...
  #1 (permalink)  
Antiguo 02/02/2012, 17:25
Avatar de wolvelopez  
Fecha de Ingreso: junio-2008
Mensajes: 86
Antigüedad: 10 años, 1 mes
Puntos: 0
xmldom

Saludos compañeros.
Estoy con un problemilla que me trae de cabeza. Aparentemente por todo lo que he buscado en internet parece fácil pero yo o encuentro solución.
El caso es que tengo un XML asi:

Código:
<root>
   <data>123</data>
</root>
Necesito obtener el valor "123" pero no tengo manera.
Lo hago así:

Código:
from xml.dom import minidom
#Importamos el fichero xml
xmldoc = minidom.parse("ficheros/xl.xml")

def obtenerNodos():
    nodos = xmldoc.getElementsByTagName("root")    
    for nodo in nodos:
        print nodo.getElementsByTagName("ean")[0].toxml()
De esta manera obtengo esto: <data>123</data> pero el problema es que yo solo quiero guardar en la variable el valor 123.
Haber si alguien me ilumina un poco.
Saludos y gracias de antemano.

Añado que solo puedo trabajar con minidom.
__________________
# "El software es un gas: se expande hasta llenar su contenedor"
-- Nathan Myhrvold
  #2 (permalink)  
Antiguo 02/02/2012, 20:23
Avatar de razpeitia
Moderador
 
Fecha de Ingreso: marzo-2005
Ubicación: Monterrey, México
Mensajes: 7.321
Antigüedad: 13 años, 4 meses
Puntos: 1360
Respuesta: xmldom

Código Python:
Ver original
  1. from xml.dom import minidom
  2. xmldoc = minidom.parse("a.xml")
  3.  
  4. def getText(nodelist):
  5.     rc = []
  6.     for node in nodelist:
  7.         if node.nodeType == node.TEXT_NODE:
  8.             rc.append(node.data)
  9.     return ''.join(rc)
  10.  
  11. for root in xmldoc.getElementsByTagName("root"):
  12.     for data in root.getElementsByTagName("data"):
  13.         print getText(data.childNodes)

O si lo prefieres, asumiendo que solo hay un root y es el principal.
Código Python:
Ver original
  1. from xml.dom import minidom
  2. xmldoc = minidom.parse("a.xml")
  3.  
  4. def getText(nodelist):
  5.     rc = []
  6.     for node in nodelist:
  7.         if node.nodeType == node.TEXT_NODE:
  8.             rc.append(node.data)
  9.     return ''.join(rc)
  10.  
  11. root = xmldoc.childNodes[0]
  12. for data in root.getElementsByTagName("data"):
  13.     print getText(data.childNodes)
  #3 (permalink)  
Antiguo 03/02/2012, 04:21
Avatar de wolvelopez  
Fecha de Ingreso: junio-2008
Mensajes: 86
Antigüedad: 10 años, 1 mes
Puntos: 0
Respuesta: xmldom

Muchas gracias razpeitia.
Tema solucionado.

Gracias, gracias gracias.
__________________
# "El software es un gas: se expande hasta llenar su contenedor"
-- Nathan Myhrvold

Etiquetas: gui
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 21:10.