mirror of
https://github.com/python/cpython.git
synced 2025-08-04 00:48:58 +00:00
bpo-36227: ElementTree.tostring() default_namespace and xml_declaration arguments (GH-12225)
Add new keyword arguments "default_namespace" and "xml_declaration" to functions ET.tostring() and ET.tostringlist(), as known from ElementTree.write().
This commit is contained in:
parent
830b43d03c
commit
ffca16e25a
4 changed files with 152 additions and 9 deletions
|
@ -1113,6 +1113,7 @@ def _escape_attrib_html(text):
|
|||
# --------------------------------------------------------------------
|
||||
|
||||
def tostring(element, encoding=None, method=None, *,
|
||||
xml_declaration=None, default_namespace=None,
|
||||
short_empty_elements=True):
|
||||
"""Generate string representation of XML element.
|
||||
|
||||
|
@ -1121,13 +1122,17 @@ def tostring(element, encoding=None, method=None, *,
|
|||
|
||||
*element* is an Element instance, *encoding* is an optional output
|
||||
encoding defaulting to US-ASCII, *method* is an optional output which can
|
||||
be one of "xml" (default), "html", "text" or "c14n".
|
||||
be one of "xml" (default), "html", "text" or "c14n", *default_namespace*
|
||||
sets the default XML namespace (for "xmlns").
|
||||
|
||||
Returns an (optionally) encoded string containing the XML data.
|
||||
|
||||
"""
|
||||
stream = io.StringIO() if encoding == 'unicode' else io.BytesIO()
|
||||
ElementTree(element).write(stream, encoding, method=method,
|
||||
ElementTree(element).write(stream, encoding,
|
||||
xml_declaration=xml_declaration,
|
||||
default_namespace=default_namespace,
|
||||
method=method,
|
||||
short_empty_elements=short_empty_elements)
|
||||
return stream.getvalue()
|
||||
|
||||
|
@ -1149,10 +1154,14 @@ class _ListDataStream(io.BufferedIOBase):
|
|||
return len(self.lst)
|
||||
|
||||
def tostringlist(element, encoding=None, method=None, *,
|
||||
xml_declaration=None, default_namespace=None,
|
||||
short_empty_elements=True):
|
||||
lst = []
|
||||
stream = _ListDataStream(lst)
|
||||
ElementTree(element).write(stream, encoding, method=method,
|
||||
ElementTree(element).write(stream, encoding,
|
||||
xml_declaration=xml_declaration,
|
||||
default_namespace=default_namespace,
|
||||
method=method,
|
||||
short_empty_elements=short_empty_elements)
|
||||
return lst
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue