12

I have created an XML file using python. But the XML declaration has only version info. How can I include encoding with XML declaration like:

<?xml version="1.0" encoding="UTF-8"?> 
1
  • 1
    how you are generating XML, which lib? Commented Apr 8, 2010 at 5:09

1 Answer 1

12
>>> from xml.dom.minidom import Document >>> a=Document() >>> a.toprettyxml(encoding="utf-8") '<?xml version="1.0" encoding="utf-8"?>\n' 

or

>>> a.toxml(encoding="utf-8") '<?xml version="1.0" encoding="utf-8"?>' 

you can set the encoding for the document.writexml() function in the same way.

Sign up to request clarification or add additional context in comments.

3 Comments

How do you actually writexml() and keep the encoding?
It should be noted that when you pass 'UTF-8' as the encoding argument, toprettyxml() returns a bytes object. Thus, when you write to a file you must open it with the 'wb' option with open("minidom_example.xml", "wb") as f: \n f.write(xml_str)
Note that according to the docs, writexml() did not get the encoding-parameter until Python 3.9. So prior to that you have to use toxml()/toprettyxml() and then write that string to a file afterwards

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.