from pprint import pprint
from xml.dom import minidom
xml = '''\
<?xml version="1.0" encoding="UTF-8"?>
<env:Envelope xmlns:env="http://[Log in to view URL]">
<env:Body>
<wd:Get_Working_Response xmlns:wd="urn:com.workway/bsvc"
wd:version="v40.1">
<wd:Request_Criteria>
<wd:Transaction_Log_Criteria_Data>
</wd:Transaction_Log_Criteria_Data>
<wd:Field_And_Parameter_Criteria_Data>
</wd:Field_And_Parameter_Criteria_Data>
<wd:Eligibility_Criteria_Data>
</wd:Eligibility_Criteria_Data>
</wd:Request_Criteria>
<wd:Response_Filter>
</wd:Response_Filter>
<wd:Response_Group>
</wd:Response_Group>
<wd:Response_Results>
</wd:Response_Results>
<wd:Response_Data>
<wd:Worker>
<wd:Worker_Reference>
<wd:ID wd:type="WID">787878787878787</wd:ID>
<wd:ID wd:type="Employee_ID">123456</wd:ID>
</wd:Worker_Reference>
<wd:Worker_Descriptor>John Smith</wd:Worker_Descriptor>
<wd:Worker_Data>
<wd:Worker_ID>123456</wd:Worker_ID>
<wd:User_ID>jsmith</wd:User_ID>
<wd:Personal_Data>
<wd:Email_Address_Data>
<wd:Email_Address>jsmith2222@gmail.com</wd:Email_Address>
<wd:Usage_Data wd:Public="0">
<wd:Type_Data wd:Primary="1">
<wd:Type_Reference>
<wd:ID wd:type="WID">000000000000000</wd:ID>
<wd:ID wd:type="Communication_Usage_Type_ID">HOME</wd:ID>
</wd:Type_Reference>
</wd:Type_Data>
</wd:Usage_Data>
<wd:Email_Reference>
<wd:ID wd:type="WID">99999999999999999999999</wd:ID>
<wd:ID wd:type="Email_ID">EMAIL_REFERENCE-3-3960</wd:ID>
</wd:Email_Reference>
<wd:ID>EMAIL_REFERENCE-3-3960</wd:ID>
</wd:Email_Address_Data>
<wd:Email_Address_Data>
<wd:Email_Address>jsmith@something.com</wd:Email_Address>
<wd:Usage_Data wd:Public="1">
<wd:Type_Data wd:Primary="1">
<wd:Type_Reference>
<wd:ID wd:type="WID">999999999999999999999999999</wd:ID>
<wd:ID wd:type="Communication_Usage_Type_ID">WORK</wd:ID>
</wd:Type_Reference>
</wd:Type_Data>
</wd:Usage_Data>
<wd:Email_Reference>
<wd:ID wd:type="WID">999999999999999999999999</wd:ID>
<wd:ID wd:type="Email_ID">EMAIL_REFERENCE-3-4017</wd:ID>
</wd:Email_Reference>
<wd:ID>EMAIL_REFERENCE-3-4017</wd:ID>
</wd:Email_Address_Data>
</wd:Personal_Data>
</wd:Worker_Data>
</wd:Worker>
</wd:Response_Data>
</wd:Get_Working_Response>
</env:Body>
</env:Envelope>'''
xmlDoc = minidom.parseString(xml)
def get_nodes(el):
return {
f"{t.tagName}{i}": t.firstChild.nodeValue.strip()
for i, t in enumerate(el.getElementsByTagName('*'))
}
worker_data = [
{i: [get_nodes(e) for e in w.getElementsByTagName('wd:Email_Address_Data')]
for i, w in enumerate(xmlDoc.getElementsByTagName('wd:Worker'))}
]
pprint(worker_data)
print()
for wd in worker_data:
for k, v in wd.items():
for e in v:
if 'WORK' in e.values():
print("Worker Email:" + e["wd:Email_Address0"])
To embed this project on your website, copy the following code and paste it into your website's HTML: