Я пытаюсь автоматизировать получение XML do c с веб-страницы с использованием селена через python. Я могу получить данные в текстовом формате. Я хочу иметь возможность легко анализировать данные, но у меня возникают проблемы с преобразованием текста в объект XML, с помощью которого я могу легко перемещаться по данным. Ниже приведены данные XML, которые извлекаются в виде необработанного текста.
<?xml version='1.0' encoding='UTF-8'?>
<S:Envelope
xmlns:S="http://xxxxxxx.xmlxxxx.org/xxxx/envelope/">
<S:Body>
<ns2:getSubscriptionInformationResponse
xmlns:ns2="http://xxxcommand.xxxxbridge.xxxxxxx.xxx.xxxxxxx.com/">
<resultData>
<errorCode>0</errorCode>
<message>Subscription information successfully retrieved</message>
<submissionDate>1584549875045</submissionDate>
<completionDate>1584549875051</completionDate>
<currentState>ACTIVATED</currentState>
<programmingState>3</programmingState>
</resultData>
</ns2:getSubscriptionInformationResponse>
</S:Body>
</S:Envelope>
Ниже приведен мой код для преобразования текста в объект XML, однако при попытке получить значение для атрибута "currentState" "Я получаю сообщение об ошибке, что индекс выходит за пределы диапазона. Любой вставленный индекс дает ошибку вне диапазона, но если я уберу индекс, то ничего не печатается.
print (subInfo [4] .attributes ["resultData"]. Value)
IndexError: список индексов выходит за пределы диапазона
xml_txt = browser.find_element_by_id('xmldisplay').text
print("XML TEXT")
print(xml_txt)
xmldom = dom.parseString(xml_txt)
print("XML DOM OBJECT")
print(xmldom)
#xml_pretty = xmldom.toprettyxml()
xml_doc = xmldom.toxml()
print("XML DOC OBJECT")
print(xml_doc)
print("'currentState' VALUE")
subInfo = xmldom.getElementsByTagNameNS("getSubscriptionInformationResponse", \
"http://xxxcommand.xxxxbridge.xxxxxxx.xxx.xxxxxxx.com/")
print(subInfo[4].attributes["resultData"].value)
Примечание. Я не опубликовал весь код, а только ту часть, в которой у меня возникли проблемы с анализом объекта xml
* Использование firefox вебдрайвер