Извлечь конкретный узел-предок из огромного XML-файла (2 ГБ), используя python (3.7.4) и xml.etree.ElementTree - PullRequest
0 голосов
/ 19 сентября 2019

У меня есть огромный XML-файл размером около 2 ГБ в следующем формате.Имена тегов во вложенной структуре продолжают повторяться, и нет уникальных атрибутов для идентификации конкретного узла.

<Parent1>
    <Parent1>
        <Parent2>
            <Parent1>
                **<Parent1>** (Need to fetch this ancestor node)
                    <Parent3>
                        <child>
                    </Parent3>
                <Parent1>
            <Parent1>
        <Parent2>
    <Parent1>
<Parent1>

Приведенный выше пример вложенной структуры продолжает повторяться несколько раз.

Я повторял иизвлек дочерний элемент с именем тега.Теперь мое требование - выбрать непосредственного предка "Parent1" дочернего элемента среди нескольких узлов "Parent1".Положение узла «Parent1» не является фиксированным.Я использую python (3.7.4) с xml.etree.ElementTree.

Ниже приведен мой код на python для анализа xml-файла

import xml.etree.ElementTree as ET

events=("start", "end")
for event, elem in ET.iterparse("sample.xml", events=events):
    if elem.tag == 'child':
        print("I'm a child")
        # Here i need to fetch the immediate ancestor "Parent1" node
        elem.clear()

Существует ли прямой путь в elementtree кполучить конкретного непосредственного предка дочернего узла?

...