Saltar al contenido

Leer archivo XML y obtener su attributes valor en Python

Este team de expertos pasados muchos días de investigación y de recopilar de datos, dimos con los datos necesarios, esperamos que resulte de gran utilidad para tu proyecto.

Solución:

Aquí hay un lxml fragmento que extrae un attribute así como elemento texto (su pregunta era un poco ambigua sobre cuál necesitaba, así que incluyo ambos):

from lxml import etree
doc = etree.parse(filename)

memoryElem = doc.find('memory')
print memoryElem.text        # element text
print memoryElem.get('unit') # attribute

Usted preguntó (en un comentario sobre la respuesta de Ali Afshar) si minidominio (2.x, 3.x) es una buena alternativa. Aquí está el código equivalente usando minidom; juzgue usted mismo cuál es más agradable:

import xml.dom.minidom as minidom
doc = minidom.parse(filename)

memoryElem = doc.getElementsByTagName('memory')[0]
print ''.join( [node.data for node in memoryElem.childNodes] )
print memoryElem.getAttribute('unit')

lxml me parece el ganador.

XML


    
        item1
        item2
        item3
        item4
    

Pitón:

from xml.dom import minidom
xmldoc = minidom.parse('items.xml')
itemlist = xmldoc.getElementsByTagName('item') 
print "Len : ", len(itemlist)
print "Attribute Name : ", itemlist[0].attributes['name'].value
print "Text : ", itemlist[0].firstChild.nodeValue
for s in itemlist :
    print "Attribute Name : ", s.attributes['name'].value
    print "Text : ", s.firstChild.nodeValue

etree, con lxml probablemente:

root = etree.XML(MY_XML)
uuid = root.find('uuid')
print uuid.text

Reseñas y puntuaciones del post

Más adelante puedes encontrar las notas de otros sys admins, tú también tienes la libertad de insertar el tuyo si lo deseas.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *