[XML-SIG] PrettyPrint
Uche Ogbuji
uche.ogbuji@fourthought.com
Tue, 17 Dec 2002 08:53:21 -0700
> Hello,
>
> I've got the following problem:
> If I save the following xml file using PrettyPrint()
>
> <?xml version="1.0"?>
> <doc><raw><![CDATA[foo]]></raw><raw>bar</raw></doc>
>
> I get:
> ##################PrettyPrint
> <?xml version='1.0' encoding='UTF-8'?>
> <doc>
> <raw>
> <![CDATA[foo]]>
> </raw>
> <raw>bar</raw>
> </doc>
>
> Now next time I read in the xml, a new text node is created in the DOM tree
> due to the indent an newline behind the first <raw> element.
>
> I could use Print since it doesn't add any additional data. But Pretty is more
> pretty ;-)
>
> I'm not sure about ignorable whitespace in xml, but I think, it is not
> correct.
>
> Shouldn't the output be ...<raw><![CDATA[foo]]></raw>...?
No. A pretty printer is expected to produce output that may have different
white space usage from a plain printer. This is the whole point of a pretty
printer. If you don't like that effect, then you should use a plain printer.
Can't really have it both ways unless you design a pretty printer specific to
your own format.
I think you may be able to get closer to what you want with
PrettyPrint(root, preserveElements=["raw"])
But I'm not sure that it gets you all the way.
--
Uche Ogbuji Fourthought, Inc.
http://uche.ogbuji.net http://4Suite.org http://fourthought.com
A Python & XML Companion - http://www.xml.com/pub/a/2002/12/11/py-xml.html
XML class warfare - http://www.adtmag.com/article.asp?id=6965
MusicBrainz metadata - http://www-106.ibm.com/developerworks/xml/library/x-thi
nk14.html