i'm trying parse large xml kml file. inside python script have following commands:
import xml.etree.elementtree etree event, elem in etree.iterparse("tracts.kml", events=('start', 'end')): if event == 'end' , elem.tag == '{http://www.opengis.net/kml/2.2}multigeometry': print(elem) the xml looks this:
<multigeometry> <polygon> <altitude> </altitude> <coordinates> </coordinates> </polygon> </multigeometry> what want export text inside <multigeometry></multigeometry> include child tags , text inside each of them.
meaning output string looks like: <polygon>...</polygon> in string format.
elem.text assumes there values outside of childtags. want of it. how of it?
thanks.
if want complete string of xml element, can use elementtree.tostring() function . please note returns byte string, (encoded using encoding passed method , default encoding 'us-ascii' ) , need decode() value actual string.
example -
>>> import xml.etree.elementtree et >>> r = et.fromstring('''<multigeometry> ... <polygon> ... <altitude> ... </altitude> ... <coordinates> ... </coordinates> ... </polygon> ... </multigeometry>''') >>> et.tostring(r) b'<multigeometry>\n <polygon>\n <altitude>\n </altitude>\n <coordinates>\n </coordinates>\n </polygon>\n</multigeometry>' >>> print(et.tostring(r).decode()) <multigeometry> <polygon> <altitude> </altitude> <coordinates> </coordinates> </polygon> </multigeometry>
Comments
Post a Comment