Получение атрибутов XML в DataFrame - PullRequest
0 голосов
/ 06 февраля 2019

Мой XML выглядит следующим образом:

<?xml version="1.0" encoding="ISO-8859-1" standalone="yes"?>
<foo bar1="1" bar2="2" bar3="23" bar4="4">
    <baz abc1="xxx" abc2="yyy">
        <item1 a="0" b="123"/>
        <item2 a="0" b="124"/>
        <item3>blue</item3>
        <item4>green</item4>
        <item5>yellow</item5>
        <item6>red</item6>
        <item7>white</item7>

Я могу получить элементы, содержащиеся в item1, item2 и т. Д. Теперь я хочу получить атрибуты, содержащиеся в foo илиbaz, например bar1 или abc1.

Все будет отправлено на пандас DataFrame.Код ниже.Обратите внимание, что col1 и col2 возвращают None.

from lxml import objectify
import pandas as pd

xml = objectify.parse('file.xml')
root = xml.getroot()

data = []

for i in range(len(root.getchildren())):
    data.append([child.text for child in root.getchildren()[i].getchildren()])

df = pd.DataFrame(data)
df.columns = ['item1', 'item2', 'item3', 'item4', 'item5', 'item6', 'item7']

df.head()

   item1  item2 item3     item4    item5   item6   item7
0  None    None   blue    green   yellow    red    white
1  None    None   blue    green   yellow    red    white
2  None    None   blue    green   yellow    red    white
3  None    None   blue    green   yellow    red    white
4  None    None   blue    green   yellow    red    white

Как я могу получить эти атрибуты?Заранее спасибо.

...