#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