[XML-SIG] xml.dom won't traverse the whole XML tree

Alexandre CONRAD aconrad.tlv at magic.fr
Tue May 17 20:22:59 CEST 2005


Hello,

I have a problem here traversing an XML file all the way through.

Here is my script file (copy/paste in a file an execute it, it should work).

------------cut------------
import time
import xml.dom.ext
from xml.dom.ext.reader import Sax2
from xml.dom.NodeFilter import NodeFilter

playlist = """<?xml version='1.0' encoding='UTF-8'?>
<playlist>
   <group name='generique_elior'>
     <video duration='49' file='geneelior.mpg' type='generique'/>
   </group>
   <group name='info'>
     <video duration='32' file='presse.mpg' type='info'/>
   </group>
   <group name='meteo'>
     <video duration='8' file='meteo_eliorv2.mpg' type='generique'/>
     <video duration='30' file='meteo_elior.mpg' type='meteo'/>
   </group>
   <group name='sport'>
     <video duration='5' file='sport_eliorv2.mpg' type='generique'/>
     <videolist tag='sport.txt'>
       <video duration='89' file='apprendrekiteboardwavemasters1.mpg' 
type='sport'/>
       <video duration='69' file='apprendrekiteboardwavemasters2.mpg' 
type='sport'/>
       <video duration='71' file='apprendrekiteboardwavemasters3.mpg' 
type='sport'/>
       <video duration='89' file='apprendrekiteboardwavemasters4.mpg' 
type='sport'/>
       <video duration='88' file='apprendrekiteboardwavemasters5.mpg' 
type='sport'/>
       <video duration='69' file='apprendrekiteboardwavemasters6.mpg' 
type='sport'/>
       <video duration='106' file='freestyle_wavemaster2004_1.mpg' 
type='sport'/>
       <video duration='87' file='freestyle_wavemaster2004_2.mpg' 
type='sport'/>
       <video duration='67' file='surfchataineliorpromo1.mpg' type='sport'/>
       <video duration='54' file='surfchataineliorpromo2.mpg' type='sport'/>
     </videolist>
   </group>
   <group name='meteo'>
     <video duration='8' file='meteo_eliorv2.mpg' type='generique'/>
     <video duration='30' file='meteo_elior.mpg' type='meteo'/>
   </group>
   <group name='cinema'>
     <video duration='7' file='cinema_eliorv2.mpg' type='generique'/>
     <videolist tag='cinema.txt'>
       <video duration='125' file='vanity_fair.mpg' type='cinema'/>
       <video duration='96' file='kingdom_of_heaven.mpg' type='cinema'/>
       <video duration='71' file='en_bonne_compagnie.mpg' type='cinema'/>
       <video duration='100' file='le_vol_du_phoenix.mpg' type='cinema'/>
       <video duration='138' file='star_wars_3.mpg' type='cinema'/>
       <video duration='144' file='the_bridge_of_san_luis_rey.mpg' 
type='cinema'/>
       <video duration='88' file='amityville.mpg' type='cinema'/>
     </videolist>
   </group>
</playlist>
"""

reader = Sax2.Reader()
doc = reader.fromString(playlist)
xml.dom.ext.StripXml(doc)

walker = doc.createTreeWalker(doc.documentElement, 
NodeFilter.SHOW_ELEMENT, None, 0)

while 1:
     print walker.currentNode.getAttribute("file")
     next = walker.nextNode()
     time.sleep(0.1)
------------cut------------


When you execute it, as you can see, it get's stuck in the 1st 
"videolist" element. It should normaly keep on going. And I can't see 
what I'm doing wrong...

Any idea what's wrong ? Thanks in advance.

Best regards,
-- 
Alexandre CONRAD - TLV
Research & Development
tel : +33 1 30 80 55 05
fax : +33 1 30 80 55 06
6, rue de la plaine
78860 - SAINT NOM LA BRETECHE
FRANCE



More information about the XML-SIG mailing list