Thanks! #removeAllFormattingNodes did the trick.

Perhaps #prettyPrinted / #enablePrettyPrinting should call it by default?

WIth regards,
Peter

On Tue, Aug 14, 2018 at 10:27 PM Carlo <snoob...@gmail.com> wrote:

> Hi Peter
>
> It seems that #preservesIgnorableWhitespace: is only adhered to "...When
> validation is enabled and a DTD with element declarations is present..."
> (See comment in SAX2ContentHandler>>ignorableWhitespace:) The actual
> parsing code is in SAXParserDriver>>handleWhitespace:
>
> What you could do is use #removeAllFormattingNodes but
> your-mileage-may-vary...
>
> parser := XMLDOMParser
>         on:'<root>
>         <tab/>
>   <twoSpaces/>
>     <fourSpaces/>
> </root>'.
>
> (parser parseDocument)
>         removeAllFormattingNodes;
>         prettyPrinted.
>
> Regards
> Carlo
>
> On 14 Aug 2018, at 13:08, Peter Uhnak <i.uh...@gmail.com> wrote:
>
> Hi,
>
> I am trying to output a pretty printed document, but it seems that the
> configuration is being ignored
>
> doc := '<root>
>         <tab/>
>   <twoSpaces/>
>     <fourSpaces/>
> </root>' parseXML.
>
> String << [ :stream |
>         doc
>                 printOn: stream
>                 beforeWritingDo: [ :writer |
>                         writer
>                                 enablePrettyPrinting;
>                                 enablePlatformSpecificLineBreak.
>                         writer formatter indentString: '  '. ] ]
>
>
> produces
>
>  "'<root>
>         <tab/>
>   <twoSpaces/>
>     <fourSpaces/>
> </root>'"
>
> I thought that maybe #preservesIgnorableWhitespace: has something to do
> with it, but whether it is true or false, the output is not pretty printed
> (not to mention, that pretty printing should ignore any preserved
> whitespaces anyway).
>
> Is this a bug? Should I print it in a different way?
>
> Thanks,
> Peter
>
>
>

Reply via email to