Posted to tcl by kbk at Wed Jan 11 01:46:23 GMT 2012view pretty
#!/usr/bin/env tclsh package require tdom set namespaces [list \ {} http://www.opengis.net/kml/2.2 \ kml http://www.opengis.net/kml/2.2 \ gx http://www.google.com/kml/test/2.2 \ atom http://www.w3.org/2005/Atom] proc replaceMultiGeometryWithLineString {doc} { foreach node [$doc selectNodes //kml:MultiGeometry] { set n2 [$node selectNodes kml:LineString] if {[llength $n2] == 1} { [$node parentNode] replaceChild [lindex $n2 0] $node } else { puts "$node doesn't have a single linestring" } } } set f [open [lindex $argv 0] r] ; set data [read $f]; close $f set doc [dom parse $data] replaceMultiGeometryWithLineString [$doc documentElement] puts [$doc asXML]