I want to fetch all Id tags values from the below xml (SOAP API):
<?xml version="1.0" encoding="UTF-8"?>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
<infasoapns:Body xmlns:eAPI="http://api.ppdi.com/1.1/Site" xmlns:infasoapns="http://schemas.xmlsoap.org/soap/envelope/" xmlns:infawsdlns="http://schemas.xmlsoap.org/wsdl/">
<eAPI:getSiteResponse>
<eAPI:SITE>
<eAPI:Id>CTMSR_1-1036KJ</eAPI:Id>
<eAPI:Sponsor>Ell Inc</eAPI:Sponsor>
<eAPI:CRO>PDP</eAPI:CRO>
<eAPI:Protocol_Number>EL184-308</eAPI:Protocol_Number>
<eAPI:Protocol_Id>CTMSR_1-LCXB0</eAPI:Protocol_Id>
</eAPI:SITE>
<eAPI:SITE>
<eAPI:Id>CTMSR_1-1036SM</eAPI:Id>
<eAPI:Sponsor>Ell Inc</eAPI:Sponsor>
<eAPI:CRO>PDP</eAPI:CRO>
<eAPI:Protocol_Number>EL184-308</eAPI:Protocol_Number>
<eAPI:Protocol_Id>CTMSR_1-LCXB0</eAPI:Protocol_Id>
</eAPI:SITE>
<eAPI:SITE>
<eAPI:Id>CTMSR_1-1036SM</eAPI:Id>
<eAPI:Sponsor>Ell Inc</eAPI:Sponsor>
<eAPI:CRO>PDP</eAPI:CRO>
<eAPI:Protocol_Number>EL184-308</eAPI:Protocol_Number>
<eAPI:Protocol_Id>CTMSR_1-LCXB0</eAPI:Protocol_Id>
</eAPI:SITE>
</eAPI:getSiteResponse>
</infasoapns:Body>
</soapenv:Envelope>
Code I wrote is below that gave empty list in the output
- when I ran tree.findall('.//Id'), it gave output: []
- when I ran print(tree.find('Id')), it gave output: None
- when I ran tree.find('Id').text, it gave output:
AttributeError Traceback (most recent call last) in ----> 1 tree.find('Id').text
AttributeError: 'NoneType' object has no attribute 'text'
Code:
>>> import xml.etree.cElementTree as ElementTree
>>> file_path = 'C:\\Users\\dshukla\\Desktop\\docs\\PPD project\\Response\\WS_SITES_1.1_RES'
>>> tree = ElementTree.parse(file_path)
>>> root = tree.getroot()
>>> print(root)
<Element '{http://schemas.xmlsoap.org/soap/envelope/}Envelope' at 0x00000238F6BFCD10>
>>> tree.findall('.//Id')
[]
>>> tree.find('Id')
>>> print(tree.find('Id'))
None
>>> tree.find('Id').text
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: 'NoneType' object has no attribute 'text'
>>>
**Why am I getting empty list/None type error ? how can I fetch values of ID tags from this xml file ? **