J'utilise le code suivant pour lire un fichier XML et l'écrire dans un fichier de sortie XML à l'aide de l'analyseur syntaxique SAX. Cependant, le fichier de sortie ne contient pas les directives CDATA. Le contenu de la section CDATA est là, mais le <![CDATA[
de départ et le ]]>
de fermeture ne sont pas présents dans le fichier de sortie!Directive CDATA absente de la sortie de l'analyseur SAX
from xml.sax import make_parser
from xml.sax.handler import ContentHandler
import sys
class XMLWriter():
def __init__ (self, xWriter):
self.xWriter = xWriter
def startElement(self, name, attrs):
self.xWriter.write('<' + name)
for sAttribute in attrs.getNames():
self.xWriter.write(' %s="%s"' % (sAttribute, attrs.getValue(sAttribute)))
self.xWriter.write('>')
def characters (self, ch):
self.xWriter.write(ch)
def endElement(self, name):
self.xWriter.write('</'+ name + '>')
def processingInstruction(self, target, data):
return
def setDocumentLocator(self, dummy):
return
def startDocument(self):
return
def endDocument(self):
return
parser = make_parser()
curHandler = XMLWriter(open('test.out.xml', 'w'))
parser.setContentHandler(curHandler)
parser.parse(open('test.xml'))
Qu'est-ce que je fais mal?