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