0

I have an xml file. I tried to convert this xml file into data frame. But I could not.

XMl Input

<root>
    <note>
      <to>Tove</to>
      <from>Jani</from>
      <heading>Reminder</heading>
      <body>Don't forget me this weekend!</body>
    </note>
    <note>
      <to>Tove</to>
      <from>Jani</from>
      <heading>Reminder</heading>
      <body>Don't forget me this weekend!</body>
    </note>
</root>

Expected Output

id    to      from    heading    body
0    Tove    Jani    Reminder   Don't forget me this weekend!
1    Tove    Jani    Reminder   Don't forget me this weekend!

1 Answers1

1

See below

import xml.etree.ElementTree as ET
import pandas as pd

xml = '''<root>
    <note>
      <to>Tove</to>
      <from>Jani</from>
      <heading>Reminder</heading>
      <body>Don't forget me this weekend!</body>
    </note>
    <note>
      <to>Tove</to>
      <from>Jani</from>
      <heading>Reminder</heading>
      <body>Don't forget me this weekend!</body>
    </note>
</root>'''

root = ET.fromstring(xml)
data = []
for note in root.findall('.//note'):
    data.append({e.tag: e.text for e in list(note)})
df = pd.DataFrame(data)
print(df)

output

                            body  from   heading    to
0  Don't forget me this weekend!  Jani  Reminder  Tove
1  Don't forget me this weekend!  Jani  Reminder  Tove
balderman
  • 22,927
  • 7
  • 34
  • 52