Te recomendaría usar lxml junto con xpaths para parsear los datos de forma mas rápida y eficiente.
Código Python:
Ver originalfrom xml.dom import minidom
def getText(nodelist):
rc = []
for node in nodelist:
if node.nodeType == node.TEXT_NODE:
rc.append(node.data)
return ''.join(rc)
def obtenerStock(referencia):
try:
#encontramos el fichero de stock
xmlstock = minidom.parse("a.xml")
articulos = xmlstock.getElementsByTagName("articulo")
for articulo in articulos:
if referencia == articulo.attributes['ref'].value:
stocks = articulo.getElementsByTagName("stock_disponible")
stock = stocks[0]
stock = int(getText(stock.childNodes))
return stock
else:
stock = 0
except ValueError:
print "No se ha encontrado el fichero de stocks..."
print obtenerStock('10130')
print obtenerStock('11096')
Código XML:
Ver original<?xml version='1.0'?>
<articulos>
<articulo ref='10130'>
<stock_disponible>2</stock_disponible>
</articulo>
<articulo ref='11096'>
<stock_disponible>6</stock_disponible>
</articulo>
</articulos>