При синтаксическом анализе xid в Python вместо значений из xml указывается None или пустая строка
Я пытаюсь проанализировать XML-файл результатов SAP (созданный в soapUI) в Python, используя minidom, и все идет гладко, пока не будет получено значение.
Независимо от того, какой это тип узла, значение выводится None
или просто пустая строка. Узлы имеют разные типы, и единственное значение, которое я могу получить, - это имя тега для узла элемента. Когда дело доходит до его стоимости, я получаю None
, За один текст я получаю #text
за nodeName
, 3
за nodeType
, но пустая строка для nodeValue
,
Что с этим не так?
Код является:
from xml.dom.minidom import parse, Node
def parseData():
try:
data = parse('data.xml')
except (IOError):
print 'No \'data.xml\' file found. Move or rename the file.'
Milestones = data.getElementsByTagName('IT_MILESTONES')
for node in Milestones:
item_list = node.getElementsByTagName('item')
print(item_list[0].childNodes[1].nodeName)
print(item_list[0].childNodes[1].nodeType)
print(item_list[0].childNodes[1].nodeValue)
в то время как важная часть структуры XML выглядит так:
<IT_MILESTONES>
<item>
<AUFNR>000070087734</AUFNR>
<INDEX_SEQUENCE>2300</INDEX_SEQUENCE>
<MLSTN>1</MLSTN>
<TEDAT>2012-08-01</TEDAT>
<TETIM>09:12:38</TETIM>
<LST_ACTDT>2012-08-01</LST_ACTDT>
<MOBILE>X</MOBILE>
<ONLY_SL/>
<VORNR>1292</VORNR>
<EINSA/>
<EINSE/>
<NOT_FOR_NEXT_MS>X</NOT_FOR_NEXT_MS>
</item>
</IT_MILESTONES>
1 ответ
Вы должны взглянуть на item_list[0].childNodes[1].childNodes
, Они содержат, вероятно, то, что вы ищете. Например:
item_list[0].childNodes[11].childNodes[0].nodeValue
это дата
u'2012-08-01'
Узлы типа 1
не имеют nodeValue
но childNodes
, Узлы типа 3
(текстовые узлы) имеют nodeValue
,