Python parses XML files

  • 2020-04-02 09:21:54
  • OfStack

Python files:

#parsexml.py 
# This example is from the reference python Online documentation, with appropriate changes and additions  

import xml.parsers.expat 

# Control printing indentation  
level = 0 

# Gets a node name and a collection of attribute values  
def start_element(name, attrs): 
global level 
print ' '*level, 'Start element:', name, attrs 
level = level + 1 

# Gets the end name of a node  
def end_element(name): 
global level 
level = level - 1 
print ' '*level, 'End element:', name 

# Gets the middle value of a node  
def char_data(data): 
if(data == 'n'): 
return 
if(data.isspace()): 
return 
global level 
print ' '*level, 'Character data:', data 

p = xml.parsers.expat.ParserCreate() 

p.StartElementHandler = start_element 
p.EndElementHandler = end_element 
p.CharacterDataHandler = char_data 
p.returns_unicode = False 

f = file('sample.xml') 
p.ParseFile(f) 
f.close()

XML file (sample.xml) :

<contacts id="bluecrystal"> 
<item name="keen" fff="ddd"> 
<telephone type="phone">222222222</telephone> 
<telephone type="mobile">134567890</telephone> 
</item> 
<item name="bcm"> 
<telephone type="phone">11111111</telephone> 
<telephone type="mobile">15909878909</telephone> 
</item> 
</contacts> 

Related articles: