File: XMLFormat.tcl

package info (click to toggle)
coccinella 0.96.20-9
  • links: PTS, VCS
  • area: main
  • in suites: bookworm, bullseye, buster
  • size: 13,184 kB
  • sloc: tcl: 124,744; xml: 206; makefile: 66; sh: 62
file content (41 lines) | stat: -rw-r--r-- 773 bytes parent folder | download | duplicates (4)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
package require xml

set _wspc {[ \t\n\r]*}
proc CData {data args} {
    global indent _wspc

    if {![regexp "^${_wspc}$" $data]} {
	puts "$indent  $data"
    }
}
proc EStart {name attlist args} {
    global indent

    set attrs {}
    foreach {key value} $attlist {
	lappend attrs "$key='$value'"
    }
    puts "${indent}<$name $attrs>"
    append indent {    }
}
proc EEnd {name args} {
    global indent

    set indent [string range $indent 0 end-4]
    puts "${indent}</$name>"
}

set indent {}
set parser [::xml::parser -characterdatacommand CData -elementstartcommand EStart  \
  -elementendcommand EEnd]

proc Format {} {
    global  parser
    
    set fileName [tk_getOpenFile]
    set fd [open $fileName]
    $parser parse [read $fd]
    close $fd
}
Format