Hi,
 
I have an elementtree question that probably reflects my inexperience with xml 
processing (and/or with Python). The xml file is a stream of the Spss 
Clementine program. Each stream consists of, among others, nodes. Each nodes 
has properties, among which "tooltiptext" and "label". I want to replace the 
contents of "label" to "tooltiptext".
 
Below is what I've cooked up till now. Could anyone give me some pointers? 
Thanks a lot in advance!
 
from elementtree import ElementTree as ET
"""
Replace the empty text of the tooltipText tag with the text of the label tag
Relevant part of the tree: stream/diagram/nodes/node/properties
Within properties, the tooltiptext tag is listed before the label tag.
"""
in_tree = ET.ElementTree(file="d:/jib/test.xml")
parent_map = dict((c, p) for p in in_tree.getiterator() for c in p)
def xml_read(parent_map):
    for c, p in parent_map.iteritems():
        if p.tag == "properties" and c.tag == "label":
            yield c.text
##newnames = xml_read(parent_map)
##for newname in newnames:
##    print newname
 
def xml_write(parent_map, in_tree):
    newnames = xml_read(parent_map)
    for c, p in parent_map.iteritems():
        if p.tag == "properties" and c.tag == "toolTipText":
            for newname in newnames:
                print newname
                c.text = newname
    in_tree.write("d:/jib/out_xml.xml")
xml_write(parent_map, in_tree)


Cheers!!
Albert-Jan

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In the face of ambiguity, refuse the temptation to guess.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~


      
_______________________________________________
Tutor maillist  -  Tutor@python.org
To unsubscribe or change subscription options:
http://mail.python.org/mailman/listinfo/tutor

Reply via email to