If you want to write a DOM tree to a file, send #printToFileNamed: (or a related message like #canonicallyPrintToFileNamed: or #printToFileNamed:beforeWritingDo:) to the root. See the XMLNode "printing" category for more. This will automatically encode the file with the encoding the XMLDocument>>#encoding attribute specifies (if recognized), and it's portable across Pharo, Squeak, and GemStone. Use #parseFileNamed:/#onFileNamed: to get portable automatic file decoding when parsing.
> Sent: Wednesday, September 13, 2017 at 1:02 PM > From: "Jimmie Houchin" <jlhouc...@gmail.com> > To: "Any question about pharo is welcome" <pharo-users@lists.pharo.org> > Subject: [Pharo-users] Writing XML > > Hello, > > I am attempting to read and write an XML document. > > Currently I have parsed the document successfully. I have basic > navigation and have learned how to modify the XMLDocument. > > Now I want to write the modified document back to the file system. > What I have tried so far is: > > writer := XMLWriter new. > xmldoc document writeXMLOn: writer. > writer stream. > f := File openForWriteFileNamed: '/home/jimmie/xmldoc.xml'. > f nextPutAll: (writer write contents). > f flush. > f close. > > It does write an xml document to the file system. However, it has > exploded in size. The original is 28mb and is in UTF-8. The newly > written file is 112mb and is UTF-32. > > I do not know why the change in encoding or how to correct or manually > set the encoding. > > Any help in understanding how to correctly write an XML document that I > have read and minimally modified would be greatly appreciated. > > Thanks. > > Jimmie > >