Posted to tcl by kbk at Wed Jan 11 01:46:23 GMT 2012view raw
- #!/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]