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]