[XML-SIG] Pretty-printing DOM trees

Christian Tismer tismer@appliedbiometrics.com
Fri, 22 Jan 1999 19:00:55 +0100


A.M. Kuchling wrote:
> 
> The format() function below pretty-prints a DOM tree.  It strips away
> all the whitespace, and then inserts Text nodes containing white
> space, producing output like this:
> 
> <?xml version="1.0"?>
> <?IS10744:arch name="xsa"?>
> <HTML>
>     <HEAD>
>         <TITLE>xmlproc: A Python XML parser</TITLE>
>         <META xsa='last-release' VALUE='19980718'/>
>     </HEAD>
>     <BODY>
>         <H1>
>             <SPAN xsa='name'>xmlproc</SPAN>: A Python XML parser
>        </H1>
>    </BODY>
> </HTML>
> 
> Should this be left as just a black-box function, or should it be
> implemented as a subclass of the writer.XmlWriter() class?  I suppose
> it depends on the envisioned application for this; if it's just to
> make output a little bit more readable for debugging purposes, then
> customizability isn't very important.  On the other hand, if people
> will want to do careful indenting of the output, indenting some tags
> and not others, then the XmlWriter solution is the way to go.
> My inclination is to the former view, but then, that's also easier for
> me. :)  Thoughts?

Well, thank you - this was exactly what I wanted.
Just readable output. I took it as is, named it "format.py", 
perfect. I don't think that customization is such an issue.

Maybe it could be a drawback that applying format to a dom was
about three or four times slower than creating the dom at all,
but nevermind.

Would this function belong to xml.dom.utils, besides print_tree?
But it is actually a function wich happens to use DOM for its
work, so it seems to be a more general function for all xml
modules, so xml.utils may be better.
Then I could also think of recoding it as an sgmlop app.

Thanks again - chris

-- 
Christian Tismer             :^)   <mailto:tismer@appliedbiometrics.com>
Applied Biometrics GmbH      :     Have a break! Take a ride on Python's
Kaiserin-Augusta-Allee 101   :    *Starship* http://starship.skyport.net
10553 Berlin                 :     PGP key -> http://pgp.ai.mit.edu/
     we're tired of banana software - shipped green, ripens at home