There are several XML parsers available in the Python standard library. Below is an example of using the ElementTree module.
<!-- Example XML file named sample.xml -->
<?xml version="1.0"?>
<Tests xmlns="http://www.adatum.com">
<Test TestId="0001" TestType="CMD">
<Name>Convert number to string</Name>
<CommandLine>Examp1.EXE</CommandLine>
<Input>1</Input>
<Output>One</Output>
</Test>
<Test TestId="0002" TestType="CMD">
<Name>Find succeeding characters</Name>
<CommandLine>Examp2.EXE</CommandLine>
<Input>abc</Input>
<Output>def</Output>
</Test>
<Test TestId="0003" TestType="GUI">
<Name>Convert multiple numbers to strings</Name>
<CommandLine>Examp2.EXE /Verbose</CommandLine>
<Input>123</Input>
<Output>One Two Three</Output>
</Test>
<Test TestId="0004" TestType="GUI">
<Name>Find correlated key</Name>
<CommandLine>Examp3.EXE</CommandLine>
<Input>a1</Input>
<Output>b1</Output>
</Test>
<Test TestId="0005" TestType="GUI">
<Name>Count characters</Name>
<CommandLine>FinalExamp.EXE</CommandLine>
<Input>This is a test</Input>
<Output>14</Output>
</Test>
<Test TestId="0006" TestType="GUI">
<Name>Another Test</Name>
<CommandLine>Examp2.EXE</CommandLine>
<Input>Test Input</Input>
<Output>10</Output>
</Test>
</Tests>
"""
Example of parsing an XML file named sample.xml and printing the parsed data
to the screen.
"""
import xml.etree.ElementTree as ET
with open('sample.xml') as file:
tree = ET.parse(file)
root = tree.getroot()
for rt in root:
testid = rt.attrib['TestId']
testtype = rt.attrib['TestType']
name = rt[0].text
cmdline = rt[1].text
enput = rt[2].text
output = rt[3].text
print(
'---\n'
f'TestId {testid}\n'
f'TestType {testtype}\n'
f'Name {name}\n'
f'CommandLine {cmdline}\n'
f'Input {enput}\n'
f'Output {output}\n'
'---\n')
Running the above example in the terminal prints the following:
---
TestId 0001
TestType CMD
Name Convert number to string
CommandLine Examp1.EXE
Input 1
Output One
---
---
TestId 0002
TestType CMD
Name Find succeeding characters
CommandLine Examp2.EXE
Input abc
Output def
---
---
TestId 0003
TestType GUI
Name Convert multiple numbers to strings
CommandLine Examp2.EXE /Verbose
Input 123
Output One Two Three
---
---
TestId 0004
TestType GUI
Name Find correlated key
CommandLine Examp3.EXE
Input a1
Output b1
---
---
TestId 0005
TestType GUI
Name Count characters
CommandLine FinalExamp.EXE
Input This is a test
Output 14
---
---
TestId 0006
TestType GUI
Name Another Test
CommandLine Examp2.EXE
Input Test Input
Output 10
---
See the resources below for more information about XML parsing in Python.
Gavin Wiggins © 2024.
Made on a Mac with Genja. Hosted on GitHub Pages.