La respuesta anterior es correcta, a saber:
name[0].firstChild.nodeValue
Sin embargo, para mí, como otros, mi valor estaba más abajo en el árbol:
name[0].firstChild.firstChild.nodeValue
Para encontrar esto utilicé lo siguiente:
def scandown( elements, indent ):
for el in elements:
print(" " * indent + "nodeName: " + str(el.nodeName) )
print(" " * indent + "nodeValue: " + str(el.nodeValue) )
print(" " * indent + "childNodes: " + str(el.childNodes) )
scandown(el.childNodes, indent + 1)
scandown( doc.getElementsByTagName('text'), 0 )
Ejecutando esto para mi archivo SVG simple creado con Inkscape, esto me dio:
nodeName: text
nodeValue: None
childNodes: [<DOM Element: tspan at 0x10392c6d0>]
nodeName: tspan
nodeValue: None
childNodes: [<DOM Text node "'MY STRING'">]
nodeName: #text
nodeValue: MY STRING
childNodes: ()
nodeName: text
nodeValue: None
childNodes: [<DOM Element: tspan at 0x10392c800>]
nodeName: tspan
nodeValue: None
childNodes: [<DOM Text node "'MY WORDS'">]
nodeName: #text
nodeValue: MY WORDS
childNodes: ()
Usé xml.dom.minidom, los distintos campos se explican en esta página, MiniDom Python.