[Tutor] Writing to XML file with minidom

Johan Geldenhuys johan at accesstel.co.za
Tue Aug 30 13:47:31 CEST 2005


That means that I have to compile the whole file from scratch in Python,
minidom.
I am not that good, yet, but will try.
will it be easier to search for the string that I look for in the file
(readlines) and then just write the pieces back again?

Johan
On Tue, 2005-08-30 at 07:40 -0400, Kent Johnson wrote:

> Johan Geldenhuys wrote:
> > Thanks for he help, so far.
> > 
> > I am still having some questions on writing my new string back to the 
> > xml file after I found what I was looking for and changed it.
> > 
> > Extracts:
> > 
> > xmlDocument = minidom.parse(file_name) # open existing file for parsing
> > main = xmlDocument.getElementsByTagName('Config')
> > main.getElementsByTagName('Connection')
> > configSection = mainSection[0]
> > 
> > for node in configSection: #Here I get the NamedNodeMap info
> >         password = node.getAttribute("password")
> >         # Do stuff to the password and I have 'newPass'
> >        node.removeAttribute('password') # I take out my old attribute 
> > and it's value
> >        node.setAttribute('password', newPass)
> > 
> > 
> > At this stage I have my new attribute and it's new value, but how do I 
> > write that to my file in the same place?
> > I have to get a 'writer', how do I do this?
> 
> The minidom docs say that DOM objects have a writexml() method:
> writexml(writer[,indent=""[,addindent=""[,newl=""]]])
>     Write XML to the writer object. The writer should have a write() method which matches that of the file object interface.
> 
> This is saying that 'writer' should act like a file object. So it can just be a file object obtained by calling open(). In other words something like
> f = open(file_name, 'w')
> xmlDocument.writexml(f)
> f.close()
> 
> should do it. If you have non-ascii characters in your XML you should use codecs.open() instead of plain open() and encode your XML as desired (probably utf-8).
> 
> > Do I have to write all the data back or can I just replace the pieces I 
> > changed?
> 
> You have to write it all back.
> 
> Kent
> 
> _______________________________________________
> Tutor maillist  -  Tutor at python.org
> http://mail.python.org/mailman/listinfo/tutor


-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mail.python.org/pipermail/tutor/attachments/20050830/13bffdf4/attachment.html


More information about the Tutor mailing list