Source code for xsdata.formats.dataclass.serializers.writers.lxml

from dataclasses import dataclass
from dataclasses import field
from typing import Generator

from lxml.etree import tostring
from lxml.sax import ElementTreeContentHandler

from xsdata.formats.dataclass.serializers.mixins import XmlWriter


[docs]@dataclass class LxmlEventWriter(XmlWriter): handler: ElementTreeContentHandler = field( init=False, default_factory=ElementTreeContentHandler )
[docs] def write(self, events: Generator): super().write(events) xml = tostring( self.handler.etree, encoding=self.encoding, pretty_print=self.pretty_print, xml_declaration=True, ).decode() self.output.write(xml)