A resposta acima está correta, a saber:
name[0].firstChild.nodeValue
No entanto, para mim, como para outros, meu valor estava mais abaixo na árvore:
name[0].firstChild.firstChild.nodeValue
Para encontrar isso, usei o seguinte:
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 )
Executar isso para meu arquivo SVG simples criado com o Inkscape me deu:
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: ()
Usei xml.dom.minidom, os vários campos são explicados nesta página, MiniDom Python.