Какой самый эффективный способ разбора xml?Особенно marcXML - PullRequest
0 голосов
/ 27 мая 2019

Учитывая это (псевдо) marcXML. Каков наиболее эффективный способ анализа таких данных?

<record>
    <data tag="02">
        <subfield>
            Huckleberry Finn
        </subfield>
    </data>
</record>


<record>
    <data tag="01">
        <subfield>
            Mitchell, Margaret
        </subfield>
    </data>
    <data tag="02">
        <subfield>
            Gone with the wind
        </subfield>
    </data>
</record>

Обратите внимание, что во втором наборе данных отсутствует атрибут с тегом = "02", поэтому у этого набора данных нет автора. Вполне может быть, что атрибут отсутствует с tag = "01".

Что я пробовал:

Вы можете перебрать все записи, найти авторов, затем снова перебрать названия и добавить их вместе. Если вы поместите результат в массив, у вас возникнет следующая проблема:

authorsArray = ["Mitchell, Margaret"]  
titleArray = ["Huckleberry Finn", "Gone with the wind"]

Если вы объедините оба, результат будет неправильным:

result = [["Mitchell, Margaret", "Huckleberry Finn"], ["Gone with the wind"]]

Этот метод использует две итерации и два вспомогательных массива .

Любые предложения будут оценены

...