|
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 |
|
|---|
| 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 |
|
|---|
| 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 |
|
|---|