Kirt wrote:
> i have walked a directory and have written the foll xml document.
> one of the folder had "&" character so i replaced it by "&"
> #------------------test1.xml
> <Directory>
>   <dirname>C:\Documents and Settings\Administrator\Desktop\1\bye
> w&amp;y </dirname>
>   <file>
>   <name>def.txt</name>
>   <time>200607130417</time>
>   </file>
> </Directory>
>  <Directory>
>   <dirname>C:\Documents and Settings\Administrator\Desktop\1\hii
> wx</dirname>
>   <file>
>   <name>abc.txt</name>
>   <time>200607130415</time>
>   </file>
> </Directory
> 
> now in my python code i want to parse this doc and print the directory
> name.
> ###----------handler------------filename---handler.py
> from xml.sax.handler import ContentHandler
> class oldHandler(ContentHandler):
>                def __init__(self):
>                       self.dn = 0
>                 def startElement(self, name, attrs):
>                       if name=='dirname':
>                               self.dn=1
> 
>               def characters(self,str):
>                       if self.dn:
>                                print str


The problem is here. "print" adds a newline. Don't use print, just append the
characters (to a string or list) until the endElement callback is called.


>                 def endElement(self, name):
>                       if name == 'dirname':
>                               self.dn=0
> 
> 
> #---------------------------------------------------------------------
> #main code--- fname----art.py
> import sys
> from xml.sax  import  make_parser
> from handlers import  oldHandler
> 
> ch = oldHandler()
> saxparser = make_parser()
> 
> saxparser.setContentHandler(ch)
> saxparser.parse(sys.argv[1])
> #-----------------------------------------------------------------------------
> i run the code as:  $python art.py test1.xml
> 
> i am getting output as:
> 
> C:\Documents and Settings\Administrator\Desktop\1\bye w
> &
> y
> C:\Documents and Settings\Administrator\Desktop\1\hii wx
> 
> where as i need an output which should look like this.
> C:\Documents and Settings\Administrator\Desktop\1\bye w&y
> 
> C:\Documents and Settings\Administrator\Desktop\1\hii wx
> 
> Can someone tell me the solution for this.
> 
-- 
http://mail.python.org/mailman/listinfo/python-list

Reply via email to