Thanks for the reply. I appreciate the education the people on this list provide. I was already doing the XMLDOMParser #onFileNamed: to open the file. It was showing the correct #encoding for the parsed file. It was just the writing of the nearly identical file which was different. I tried as you wrote #printToFileNamed: and it did as you explained. Thanks again. Jimmie On 09/15/2017 09:29 AM, monty wrote:
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" <jlhouchin@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