处理大型XML文件

时间:2015-03-11 13:38:56

标签: python xml

我正在尝试使用Python处理一个非常大的XML文件,这是一个示例文件。

<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>

我想要做的是对于名称为MktDataFull的每个XML元素,我想打印出包含在该节点和子节点中的所有属性的一行。这是我尝试通过查找所有MktDataFull元素来打印一些属性。

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

然而,我没有返回任何值。有人可以帮忙吗?

0 个答案:

没有答案