This is a snippet of the XML I am trying to parse:
<DSMs>
<DSM class="ACE" order="320"/>
<DSM class="ACS" order="1900"/>
<DSM class="Aironet" order="1050"/>
<DSM class="Apache" order="4700"/>
<DSM class="AppSecDbProtect" order="1477"/>
<DSM class="ArborNetworksPravail" order="1554">
<Thresholds>
<Threshold name="MinNumEvents" value="5"/>
<Threshold name="AbandonAfterSuccessiveFailures" value="3"/>
</Thresholds>
<Templates>
<Template name="DeviceName" value="Arbor Networks Pravail @ $$SOURCE_ADDRESS$$"/>
</Templates>
</DSM>
<DSM class="ARN" order="2000"/>
<DSM class="ArpeggioSIFTIT" order="1553"/>
<DSM class="ArubaClearPass" order="545">
<Thresholds>
<Threshold name="MinNumEvents" value="5"/>
<Threshold name="AbandonAfterSuccessiveFailures" value="3"/>
</Thresholds>
<Templates>
<Template name="DeviceName" value="Aruba ClearPass Policy Manager @ $$SOURCE_ADDRESS$$"/>
<Template name="DeviceDescription" value="Aruba ClearPass Policy Manager Device"/>
</Templates>
</DSM>
</DSMs>
What I did so far (part of the code):
ta_dsms = []
for level1 in root:
if level1.tag == 'DSMs':
for level2 in level1:
ta_dsm = level2.attrib
ta_dsms.append(ta_dsm)
print ta_dsms
The current output of ta_dsms is like:
[{'class': 'ACE', 'order': '320'},
{'class': 'ACS', 'order': '1900'},
...]
My question is what the elegant way is to get Thresholds and Templates info and add them to my array. Only some DSMs have children. I've been stuck on this all day. Thank you for saving my life!
ThresholdsandTemplatesbe lists in eachDSM, correct?