Это должно просто быть
name[0].firstChild.nodeValue
Вероятно, что-то вроде этого, если это - текстовая часть, Вы хотите...
from xml.dom.minidom import parse
dom = parse("C:\\eve.xml")
name = dom.getElementsByTagName('name')
print " ".join(t.nodeValue for t in name[0].childNodes if t.nodeType == t.TEXT_NODE)
текстовую часть узла считают узлом, сам по себе помещенным как дочерний узел того, который Вы попросили. Таким образом Вы захотите пройти всех его детей и найти все дочерние узлы, которые являются текстовыми узлами. Узел может иметь несколько текстовых узлов; например,
<name>
blabla
<somestuff>asdf</somestuff>
znylpx
</name>
Вы хотите и 'blabla' и 'znylpx'; следовательно "" .join (). Вы могли бы хотеть заменить пространство приблизительно одной новой строкой, или возможно ничем.
Я знаю, что этот вопрос уже довольно старый, но я подумал, что вам будет легче с ElementTree
from xml.etree import ElementTree as ET
import datetime
f = ET.XML(data)
for element in f:
if element.tag == "currentTime":
# Handle time data was pulled
currentTime = datetime.datetime.strptime(element.text, "%Y-%m-%d %H:%M:%S")
if element.tag == "cachedUntil":
# Handle time until next allowed update
cachedUntil = datetime.datetime.strptime(element.text, "%Y-%m-%d %H:%M:%S")
if element.tag == "result":
# Process list of skills
pass
Я знаю, что это не очень специфично , но я только что обнаружил это, и пока что мне намного проще разобраться, чем минидом (поскольку многие узлы по сути являются пустым пространством).
Например, у вас есть имя тега и фактический текст вместе, как и следовало ожидать:
>>> element[0]
<Element currentTime at 40984d0>
>>> element[0].tag
'currentTime'
>>> element[0].text
'2010-04-12 02:45:45'e