При синтаксическом анализе 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,

Другие вопросы по тегам