[[ [CL] means by this "display formatting".]] [[Explain what's available in [TclDOM] and [tdom].]] For TclDOM, just use the -indent option. For example, dom::serialize $dom -indent yes The man page [http://tclxml.sf.net/tcldom/2.3/tcldom-man.html] explains the use of -indent and -indentspec. [[Explain pretty_print package--application, why not at SF, plans, ...]] [[License, too.]] [[Last one CL packaged was http://www.phaseit.net/claird/comp.lang.tcl/dom_pretty_print/dom_pretty_print-0.2.tar.Z ]] ---- [RS] can't resist to contribute a quite pretty one-liner proc: package require tdom proc xmlpretty xml {[[dom parse $xml] documentElement] asXML} % xmlpretty "grill" grill Nicely functional (indenting is default in the ''asXML'' method), it's just that it leaks memory: the document object is never freed. So here is a cleaner, but not so compact version: proc xmlpretty xml { dom parse $xml mydom set res [[$mydom documentElement] asXML] $mydom delete set res } ;# RS Also see [XML] and http://software.decisionsoft.com/software/xmlpp.pl