0

I have the following XMl file:

<data>
   
    <Views>
        <view viewname="Request Info" Queryname="Gooo"/>
        <view viewname="To Do" Queryname="For later"/>
    </Views>
</data>

I am trying to add new elements to 'Views' so eventually it will look like this:

    <Views>
        <view viewname="Request Info" Queryname="Gooo"/>
        <view viewname="To Do" Queryname="For later"/>
       <view viewname="Request Info222" Queryname="Gooo"/>
    </Views>
</data>

my code looks like this:

from xml.etree import ElementTree as ET

tree = ET.parse('C:\Python_Projects\Jira_Rest\hest.xml')
root = tree.getroot()

for item in root.findall('Views'):
   
    new = ET.SubElement(item, 'View')
    new.text = '<view viewname="Request Info222" Queryname="Gooo"/>'

there are no errors but the file is not updated with the new data.

Nir Eyal
  • 29
  • 4

1 Answers1

0

See below

import xml.etree.ElementTree as ET

xml = '''<data>
    <Views>
        <view viewname="Request Info" Queryname="Gooo"/>
        <view viewname="To Do" Queryname="For later"/>
    </Views>
</data>'''

root = ET.fromstring(xml)
views = root.find('.//Views')
new_view = ET.Element('view', attrib={'viewname': 'Request Info222', 'Queryname': 'Gooo'})
views.append(new_view)
ET.dump(root)

output

<data>
   <Views>
      <view viewname="Request Info" Queryname="Gooo" />
      <view viewname="To Do" Queryname="For later" />
      <view viewname="Request Info222" Queryname="Gooo" />
   </Views>
</data>
balderman
  • 22,927
  • 7
  • 34
  • 52