I am trying to use Python to process a very large XML file, here's a sample file.
<FIXML r="20030618" s="20040109" v="4.4" xr="FIA" xv="1"
xmlns="http://www.fixprotocol.org/FIXML-4-4">
<Batch>
<MktDataFull RptID="23520135" BizDt="2015-01-20">
<Instrmt Sym="OEF" MMY="20171215" MatDt="2017-12-15" CFI="OCASPS" StrkPx="100" StrkMult="1" StrkValu="100" Mult="100" StrkCcy="USD"/>
<Full Typ="5" Px="5.65" Ccy="USD" PxDelta="0.35" Dt="2015-01-20"/>
<Full Typ="D" Px="89.29" Dt="2015-01-20"/>
</MktDataFull>
<MktDataFull RptID="16349083" BizDt="2015-01-20">
<Instrmt Sym="OEF" MMY="20151219" MatDt="2015-12-19" CFI="OCASPS" StrkPx="35" StrkMult="1" StrkValu="100" Mult="100" StrkCcy="USD"/>
<Full Typ="5" Px="54.3225" Ccy="USD" PxDelta="0.99" Dt="2015-01-20"/>
<Full Typ="D" Px="89.29" Dt="2015-01-20"/>
</MktDataFull>
</Batch>
What I am trying to do is for every XML element of the name MktDataFull, I want to print out a line of all attributes contain in that node plus child nodes. Here's my attempt just to print a few attributes, by finding all MktDataFull elements.
import xml.etree.cElementTree as ET
tree = ET.ElementTree(file='file.xml')
for elem in tree.findall('MktDataFull'):
print elem.attrib["RptID"]
print elem.attrib["BizDt"]
print elem.attrib["Sym"]
# etc
I am returning no values for this however. Can someone help?