From 458120dd40db6b4df55a4e96b650e16798ef06a0 Mon Sep 17 00:00:00 2001 From: cinap_lenrek Date: Tue, 3 May 2011 11:25:13 +0000 Subject: add hg and python --- sys/src/cmd/python/Demo/xml/rss2html.py | 91 +++++++++++++++++++++++++++++++++ 1 file changed, 91 insertions(+) create mode 100644 sys/src/cmd/python/Demo/xml/rss2html.py (limited to 'sys/src/cmd/python/Demo/xml/rss2html.py') diff --git a/sys/src/cmd/python/Demo/xml/rss2html.py b/sys/src/cmd/python/Demo/xml/rss2html.py new file mode 100644 index 000000000..15c989195 --- /dev/null +++ b/sys/src/cmd/python/Demo/xml/rss2html.py @@ -0,0 +1,91 @@ +import sys + +from xml.sax import make_parser, handler + +# --- Templates + +top = \ +""" + + + + %s + + + +

%s

+""" + +bottom = \ +""" + + +
+
+Converted to HTML by sax_rss2html.py. +
+ + + +""" + +# --- The ContentHandler + +class RSSHandler(handler.ContentHandler): + + def __init__(self, out = sys.stdout): + handler.ContentHandler.__init__(self) + self._out = out + + self._text = "" + self._parent = None + self._list_started = 0 + self._title = None + self._link = None + self._descr = "" + + # ContentHandler methods + + def startElement(self, name, attrs): + if name == "channel" or name == "image" or name == "item": + self._parent = name + + self._text = "" + + def endElement(self, name): + if self._parent == "channel": + if name == "title": + self._out.write(top % (self._text, self._text)) + elif name == "description": + self._out.write("

%s

\n" % self._text) + + elif self._parent == "item": + if name == "title": + self._title = self._text + elif name == "link": + self._link = self._text + elif name == "description": + self._descr = self._text + elif name == "item": + if not self._list_started: + self._out.write("