I'm a computational chemist who frequently dabbles in Python. A collaborator sent me a huge XML file that at one point was evidently modified by a now defunct java application. A sample of this file looks something like:
<group type="struct"> <name>Test</name> <param type="string"> <name>File Name</name> <cTag>fileName</cTag> <desc>Name of the input file</desc> <value>water</value> </param> <param type="int"> <name>Number of Atoms</name> <cTag>natoms</cTag> <desc>Number of atoms in the molecule</desc> <value>3</value> </param> </group> I've been playing around with parsing that file using the ElementTree functions, and writing little functions to walk the tree and print stuff out. I'd like to construct a little wxPython program to modify the values graphically, maybe using something like a TreeCtrl widget. I'm pretty sure I can figure out how to get the data into the widget. - Struct - File Name: water - Number of Atoms: 3 etc. What's confusing me is what I do when I shut down the gui and save the data back to a file. What I would like to be able to do is to update the values in the ElementTree itself, and use the .write(file) function of the elementtree to write out the file, since that ends up printing out something pretty much identical to the original xml file. If I want to do this, it seems like I need to keep a connection between the gui element and the original value in the elementtree, so I can update it. But I'm having a hard time visualizing exactly how this works. Can someone help me out here a bit? If this is impossible, or too difficult, I can certainly figure out a way to dump the XML directly from the gui itself, but I worry that I'll mangle the XML in the process, which elementtree doesn't do (i.e. the null operation, parsing a file with elementtree and writing it out again doesn't change anything). Seems like this is something that's probably pretty common, modifying a data structure using a gui, so I'm hoping that someone has thought about this and has some good advice about best practices here. Thanks in advance for your time, Rick -- http://mail.python.org/mailman/listinfo/python-list