[Tutor] Writing to XML file with minidom

Danny Yoo dyoo at hkn.eecs.berkeley.edu
Mon Aug 22 19:57:36 CEST 2005



> """ Parse the xml file """
>             xmlDocument = minidom.parse(self.configFile)
[code cut]


> Now I want to change a string that a retrieved from the file and write
> it back to where it was. So, I get something, change it and write it
> back.
>
> How do I put the new string in the place of the old? How do I overwrite
> the first value with the new value?


Hi Johan,

The documentation in:

    http://www.python.org/doc/lib/module-xml.dom.minidom.html

has a small example where they insert text into an element:

###### (From the documentation)
from xml.dom.minidom import getDOMImplementation
impl = getDOMImplementation()
newdoc = impl.createDocument(None, "some_tag", None)
top_element = newdoc.documentElement
text = newdoc.createTextNode('Some textual content.')
top_element.appendChild(text)
######

Elements have methods like appendChild(), replaceChild() and
removeChild().  So it should be fairly straightforward to replace the
existing text node with a new one.


That being said, the DOM model is a bit verbose and feels very low-level.
Have you looked at the third-party "ElementTree" module yet?

    http://effbot.org/zone/element-index.htm

It's a bit more convenient to work with; its model maps better to Python.


Good luck!



More information about the Tutor mailing list