mirror of
https://github.com/python/cpython.git
synced 2026-01-06 07:22:09 +00:00
Implement the encoding argument for toxml and toprettyxml.
Document toprettyxml.
This commit is contained in:
parent
2ebfd09e58
commit
7d650ca83b
5 changed files with 68 additions and 9 deletions
|
|
@ -65,16 +65,22 @@ def __init__(self):
|
|||
def __nonzero__(self):
|
||||
return 1
|
||||
|
||||
def toxml(self):
|
||||
writer = _get_StringIO()
|
||||
self.writexml(writer)
|
||||
return writer.getvalue()
|
||||
def toxml(self, encoding = None):
|
||||
return self.toprettyxml("", "", encoding)
|
||||
|
||||
def toprettyxml(self, indent="\t", newl="\n"):
|
||||
def toprettyxml(self, indent="\t", newl="\n", encoding = None):
|
||||
# indent = the indentation string to prepend, per level
|
||||
# newl = the newline string to append
|
||||
writer = _get_StringIO()
|
||||
self.writexml(writer, "", indent, newl)
|
||||
if encoding is not None:
|
||||
import codecs
|
||||
# Can't use codecs.getwriter to preserve 2.0 compatibility
|
||||
writer = codecs.lookup(encoding)[3](writer)
|
||||
if self.nodeType == Node.DOCUMENT_NODE:
|
||||
# Can pass encoding only to document, to put it into XML header
|
||||
self.writexml(writer, "", indent, newl, encoding)
|
||||
else:
|
||||
self.writexml(writer, "", indent, newl)
|
||||
return writer.getvalue()
|
||||
|
||||
def hasChildNodes(self):
|
||||
|
|
@ -934,8 +940,12 @@ def getElementsByTagNameNS(self, namespaceURI, localName):
|
|||
return _getElementsByTagNameNSHelper(self, namespaceURI, localName,
|
||||
NodeList())
|
||||
|
||||
def writexml(self, writer, indent="", addindent="", newl=""):
|
||||
writer.write('<?xml version="1.0" ?>\n')
|
||||
def writexml(self, writer, indent="", addindent="", newl="",
|
||||
encoding = None):
|
||||
if encoding is None:
|
||||
writer.write('<?xml version="1.0" ?>\n')
|
||||
else:
|
||||
writer.write('<?xml version="1.0" encoding="%s"?>\n' % encoding)
|
||||
for node in self.childNodes:
|
||||
node.writexml(writer, indent, addindent, newl)
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue