Мой 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
Как я могу получить эти атрибуты?Заранее спасибо.