root/gaphor/tags/gaphor-0.12.0/gaphor/misc/xmlwriter.py

Revision 455, 0.8 kB (checked in by arjanmol, 4 years ago)

*** empty log message ***

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
Line 
1 # vim:sw=4:et
2
3 import sys
4 from xml.sax.saxutils import XMLGenerator
5
6 class XMLWriter(XMLGenerator):
7     """An XMLGenerator with CDATA handling extensions.
8     """
9
10     def __init__(self, out=None):
11         XMLGenerator.__init__(self, out, sys.getdefaultencoding())
12         self._in_cdata = False
13
14     def characters(self, content):
15         if self._in_cdata:
16             self._out.write(content.replace(']]>', '] ]>'))
17         else:
18             XMLGenerator.characters(self, content)
19
20     # Lexical handler methods
21
22     def comment(self, comment):
23         self._out.write('<!-- ')
24         self._out.write(comment.replace('-->', '- ->'))
25         self._out.write(' -->')
26
27     def startCDATA(self):
28         self._out.write('<![CDATA[')
29         self._in_cdata = True
30
31     def endCDATA(self):
32         self._out.write(']]>')
33         self._in_cdata = False
34
Note: See TracBrowser for help on using the browser.