This issue tracker has been migrated to GitHub, and is currently read-only.
For more information, see the GitHub FAQs in the Python's Developer Guide.

Author twowolfs
Recipients docs@python, twowolfs
Date 2021-09-30.19:58:41
SpamBayes Score -1.0
Marked as misclassified Yes
Message-id <1633031921.76.0.241035024911.issue45336@roundup.psfhosted.org>
In-reply-to
Content
When executing the following command after modifiy an xml file an error is prodcued.

import xml.etree.ElementTree as ET
rtexmlFile = 'Fox_CM3550A_SWP1_Rte_ecuc.arxml'
rte_ecu_tree = ET.parse(rtexmlFile)
root = rte_ecu_tree.getroot()

rte_ecu_tree.write(rtexmlFile, encoding="UTF-8", xml_declaration="True", default_namespace="None" method="xml",short_empty_elements="True" )

ValueError: cannot use non-qualified names with default_namespace option

The documentation for the ElementTree.write function indicates the following format for this command but this format does not seem to wrok

The write command does not also take into account when having standalone in the xml defintion. For ex,

<?xml version="1.0" encoding="UTF-8" standalone="no"?>

ElementTree.write will not add standalone back to the xml file

Is this a bug in version 3.7?


write(file, encoding="us-ascii", xml_declaration=None, default_namespace=None, method="xml", *, short_empty_elements=True)
Writes the element tree to a file, as XML. file is a file name, or a file object opened for writing. encoding 1 is the output encoding (default is US-ASCII). xml_declaration controls if an XML declaration should be added to the file. Use False for never, True for always, None for only if not US-ASCII or UTF-8 or Unicode (default is None). default_namespace sets the default XML namespace (for “xmlns”). method is either "xml", "html" or "text" (default is "xml"). The keyword-only short_empty_elements parameter controls the formatting of elements that contain no content. If True (the default), they are emitted as a single self-closed tag, otherwise they are emitted as a pair of start/end tags.

The output is either a string (str) or binary (bytes). This is controlled by the encoding argument. If encoding is "unicode", the output is a string; otherwise, it’s binary. Note that this may conflict with the type of file if it’s an open file object; make sure you do not try to write a string to a binary stream and vice versa.
History
Date User Action Args
2021-09-30 19:58:41twowolfssetrecipients: + twowolfs, docs@python
2021-09-30 19:58:41twowolfssetmessageid: <1633031921.76.0.241035024911.issue45336@roundup.psfhosted.org>
2021-09-30 19:58:41twowolfslinkissue45336 messages
2021-09-30 19:58:41twowolfscreate