Python XML解析使用循环

问题描述 投票:1回答:2

我有一个XML文件,如下所示:

<A><B><C>
    <D>
        .
        .
        .
    </D>
    <E>
        .
        .
        .
        .
        .
    </D>
    <F>
        <F1>
            <F11>
                .
                .
                .
                .
                .
            </F11>
        </F1>
        <F1>
            <F11>
                .
                .
                .
                .
                .
                .
                .
            </F11>
        </F1>
    </F>

我想解析名为F11的标签,它可以出现多次。这是F1的子标签,F1也可以存在n次。我一直在解析,但我可以找出F1在xml文件中出现的次数。以下是代码:

from xml.dom.minidom import parseString
if __name__ == "__main__":
    with open('final_resp.xml','r') as f:
        doc = (f.read())

    dom = parseString(doc)
    f1_count = len(dom.getElementsByTagName('F1'))
    for x in range(0,f1_count):
        //parsing of each F1 tag

有人可以帮帮我吗?

python-3.x xml-parsing
2个回答
0
投票

最后,我发现了有效的解决方案。使用xml.etree.ElementTree,我们可以找到所需标记的出现并解析它。

import xml.etree.ElementTree as ET

tree = ET.parse('data.xml')
root = tree.getroot()
for responses in root.findall('./B/C/F/F1'):
    date = responses.find('./F11/DATE-REPORTED').text
    print(a)

-1
投票

首先,您需要有一个有效的XML文件,如:

data.hml:

<note>
<A>Tove</A>
<B>Jani</B>
<C>Reminder</C>
<D>Don't forget me this weekend!</D>
<E>SOme data</E>
<F>
  <F1>
    <F11>
      Some F11 Datas
    </F11>
  </F1>
  <F2>
    <F12>
      Some F12 data
    </F12>
  </F2>
</F>
</note>

您可以使用pythons内置的xml模块来获取数据:

import xml.etree.ElementTree as ET

tree = ET.parse('data.xml')
root = tree.getroot()

for item in root[5]:
    print(item[0].text)

XML是一种数据载体格式,您不能使用重复的标签

© www.soinside.com 2019 - 2024. All rights reserved.