[ 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 [L1 ] 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 "<foo a=\"b\"><bar>grill</bar><room/></foo>" <foo a="b"> <bar>grill</bar> <room/> </foo>
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
2004-03-13: Revisiting this page, I see that this is of course yet another use case for the K combinator:
proc xmlpretty xml { dom parse $xml mydom K [[$mydom documentElement] asXML] [$mydom delete] } proc K {a b} {set a}
Also see XML and http://software.decisionsoft.com/software/xmlpp.pl
[ Category Application | Category XML | ]