Python XML Parser Tutorial

Python XML Parser Tutorial

Table of Contents

Extensible Markup language (XML) was developed in 1998 to make it both human and machine-readable, designed to store any amount of data, and is widely used for sharing information across the internet.  In this, Python XML Parser Tutorial you will learn to parse and modify an XML document

In XML there are no built-in tags like HTML has. We declare tags as we want.

Python is a general-purpose programming language; it allows us to parse and modify an XML document. There are two main libraries in Python that deals with XML.

  • Minidom
  • ElementTree

Let’s start with Minidom

Let’s first create a simple XML file that we are going to use in this tutorial. Create a file with the name notes.xml as shown below.

<note>
  <to>Tove</to>
  <from>Jani</from>
  <heading>Reminder</heading>
  <body>Don't forget me this weekend!</body>
</note>
Python XML Parser Tutorial

How to Parse XML using minidom

Now let’s parse the notes.xml file and print the node name that is ‘document’ and first child tag name that is ‘note’ as we created in the XML file.

import xml.dom.minidom

notes = xml.dom.minidom.parse('notes.xml')
print(notes.nodeName)
print(notes.firstChild.tagName)
Python XML Parser Tutorial

Now let’s print out the data in the first Child.

import xml.dom.minidom

notes = xml.dom.minidom.parse('notes.xml')
note = notes.getElementsByTagName("to")
for i in note:
  print(i.firstChild.data)

The following will be the output.

Python XML Parser Tutorial

How to Parse XML using ElementTree

ElementTree is easy as compared to Minidom. Let’s take a look at how to parse XML file using ElementTree.

We just need the following code to print all the data in our notes.xml file.

The following will be the output.

Python XML Parser Tutorial

Let’s write data to XML file using ElementTree

import xml.etree.ElementTree as ET

# create the file structure
data = ET.Element('notes')
items = ET.SubElement(data, 'Persons')
item1 = ET.SubElement(items, 'person1')
item2 = ET.SubElement(items, 'person2')
item1.set('name','salman')
item2.set('name','Ahmed')
item1.text = 'Hello Salman'
item2.text = 'Hello Ahmed'

# create a new XML file with the results
mydata = ET.tostring(data)
myfile = open("notes1.xml", "wb")
myfile.write(mydata)

The following will be the output.Python XML Parser Tutorial

The following will be the output of XML file.

Python XML Parser Tutorial
Share this article
Subscribe
By pressing the Subscribe button, you confirm that you have read our Privacy Policy.
Need a Free Demo Class?
Join H2K Infosys IT Online Training