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

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.