X-Git-Url: https://git.mdrn.pl/librarian.git/blobdiff_plain/f8e5f031c04122d65d1066077be3920ae95518ae..b25c0f434cc50d48379fc8aa4c1bf5ea32212396:/librarian/wl_light.py diff --git a/librarian/wl_light.py b/librarian/wl_light.py new file mode 100644 index 0000000..a39e8e0 --- /dev/null +++ b/librarian/wl_light.py @@ -0,0 +1,47 @@ +# -*- encoding: utf-8 -*- + +__author__= "Łukasz Rekucki" +__date__ = "$2009-10-19 16:31:14$" +__doc__ = "Functions to operate on a tag-light version of WLML." + +class LightSerializer(object): + + def __init__(self): + pass + + def serialize(self, element): + handler = getattr(self, 'serialize_' + element.tag, self.identity) + return handler(element) + (element.tail or u'') + + def serialize_slowo_obce(self, e): + return u' %%'+self.descent(e)+u'%% ' + + def descent(self, e): + b = (e.text or u'') + for child in e.iterchildren(): + b += self.serialize(child) + return b + + def identity(self, e): + b = u'<'+e.tag + + # attributes + b += u' '.join((u'%s="%s"' % (attr, value) for attr,value in e.items())) + b += u'>' + b += self.descent(e) + b += u'' + + return b + +_serializer = LightSerializer() + +def serialize_nl(element): + prolog = u'' + element.text # ordinary stuff + data = u'' + + for child in element.iterchildren(): + data += _serializer.serialize(child) + + return prolog + data + +