Using Expat edit
This example was posted by George Petasis to comp.lang.tcl:proc handle_start {name attributes args} { set ::CurrentTag $name };# handle_start proc handle_end {name args} { set ::CurrentTag {} };# handle_end proc handle_text {data args} { switch -exact $::CurrentTag { title {set ::CurrentTitle [string trim $data]} id {set ::CurrentId $data} text {# do something with the text } } };# handle_text ## Create a streaming xml parser... package require tdom expat xml -elementstartcommand handle_start \ -elementendcommand handle_end \ -characterdatacommand handle_text ## Open the input file (always in utf-8) set fd [open $in] fconfigure $fd -encoding utf-8 ## Parse the xml data... xml parsechannel $fd ## Done! Free parser and close file... close $fd xml free
For expat usage examples, see: