Write an XML element to a file-like object Write the element to the writer object that must provide a write method (e.g. a file or StringIO object).
(self, writer, indent="", addindent="", newl="")
| 869 | return "<DOM Element: %s at %#x>" % (self.tagName, id(self)) |
| 870 | |
| 871 | def writexml(self, writer, indent="", addindent="", newl=""): |
| 872 | """Write an XML element to a file-like object |
| 873 | |
| 874 | Write the element to the writer object that must provide |
| 875 | a write method (e.g. a file or StringIO object). |
| 876 | """ |
| 877 | # indent = current indentation |
| 878 | # addindent = indentation to add to higher levels |
| 879 | # newl = newline string |
| 880 | writer.write(indent+"<" + self.tagName) |
| 881 | |
| 882 | attrs = self._get_attributes() |
| 883 | |
| 884 | for a_name in attrs.keys(): |
| 885 | writer.write(" %s=\"" % a_name) |
| 886 | _write_data(writer, attrs[a_name].value) |
| 887 | writer.write("\"") |
| 888 | if self.childNodes: |
| 889 | writer.write(">") |
| 890 | if (len(self.childNodes) == 1 and |
| 891 | self.childNodes[0].nodeType in ( |
| 892 | Node.TEXT_NODE, Node.CDATA_SECTION_NODE)): |
| 893 | self.childNodes[0].writexml(writer, '', '', '') |
| 894 | else: |
| 895 | writer.write(newl) |
| 896 | for node in self.childNodes: |
| 897 | node.writexml(writer, indent+addindent, addindent, newl) |
| 898 | writer.write(indent) |
| 899 | writer.write("</%s>%s" % (self.tagName, newl)) |
| 900 | else: |
| 901 | writer.write("/>%s"%(newl)) |
| 902 | |
| 903 | def _get_attributes(self): |
| 904 | self._ensure_attributes() |
nothing calls this directly
no test coverage detected