Как прочитать значение XML-тега, имеющего атрибуты, с помощью minidom

#python #xml #minidom

#питон #xml #minidom

Вопрос:

У меня есть XML-файл, который выглядит следующим образом.

 <nb:myelement param='oxygen'>Value</nb:element>
 

Я использую следующий код python.

 for sub in dom.getElementsByTagName('nb:myelement'):
   if(sub.getAttributeNode("param").nodeValue == 'oxygen'):
      value = sub.getElementsByTagName('nb:myelement')[0].toxml()
 

Но последняя строка — это метание index out of range execption . Как мне получить «значение», заключенное в тег, который также имеет атрибуты?

Комментарии:

1. Есть ли причина, по которой вы не можете использовать xml.etree.ElementTree или превосходную библиотеку lxml? Мне больно видеть, что люди все еще используют DOM, когда у Python есть такие отличные альтернативы.

Ответ №1:

В вашем nb:myelement нет других элементов nb:myelement. Итак, последняя строка действительно

 [][0].toxml()
 

Если в nb:myelement есть только текст, просто используйте текстовый узел этого элемента

 sub.firstChild.nodeValue