Patching XMLNode>>printOn: like that seems to work.

XMLNode>>printOn: aStream
        | writer |

        writer := XMLWriter on: aStream.
>>      writer enablePrettyPrinting.
        self printXMLOn: writer.
        writer flushMarkup.

Now this is clearly not a good solution. I will change my code not to be based 
on the printOn behavior and use a
writer instead. 

Now I do not understand why we create a writer for each printOn: message


Stef




On Oct 31, 2010, at 12:03 PM, Stéphane Ducasse wrote:

> 
> In my really old code I wrote
> 
> save 
>       "self new save"
>       
>       | doc |
>       doc := self buildXML.
>       doc printOn: self stream
> 
> 
> buildXML
> 
>       ^ self base asXML
> 
> 
> Base>>asXML
>       "BDBase uniqueInstance asXML"
>       
>       | doc elem |
>       doc := XMLDocument new. 
>       doc version: '1.0'. 
>       elem := XMLElement
>               name: #Base
>               attributes:
>                 (Dictionary new
>                      at: 'date' put: Date today asString;
>                      at: 'entriesNumber' put: self elements size asString;
>                                  at: 'note' put: self note asString; 
>                    yourself).
>       doc addElement: elem.
>       self elements do: [:each | elem addElement: each asXML].
>       ^ doc
> 
> Elements>>asXML
>       ^ XMLElement name: self class xmlName attributes: self attributes
> 
> 
> So how can I control that each elements ends with a linebreak/cr whatever?
> 
> Stef
> 
> 
> 
> 
> 


Reply via email to