diff options
| author | Georg Brandl <georg@python.org> | 2009-10-11 15:06:44 (GMT) | 
|---|---|---|
| committer | Georg Brandl <georg@python.org> | 2009-10-11 15:06:44 (GMT) | 
| commit | 32855b6dcd04dffe6a3e9705afcced6cbcb95bef (patch) | |
| tree | 28f1f0543329d4b750a7074e04fd99573c77065e /Demo/xml/rss2html.py | |
| parent | b3f9d66ca327b80cc05d79a9b6e6b030a75dc28b (diff) | |
| download | cpython-32855b6dcd04dffe6a3e9705afcced6cbcb95bef.zip cpython-32855b6dcd04dffe6a3e9705afcced6cbcb95bef.tar.gz cpython-32855b6dcd04dffe6a3e9705afcced6cbcb95bef.tar.bz2  | |
Overhaul of Demo/xml.
Diffstat (limited to 'Demo/xml/rss2html.py')
| -rw-r--r-- | Demo/xml/rss2html.py | 54 | 
1 files changed, 30 insertions, 24 deletions
diff --git a/Demo/xml/rss2html.py b/Demo/xml/rss2html.py index 15c9891..f2067a9 100644 --- a/Demo/xml/rss2html.py +++ b/Demo/xml/rss2html.py @@ -1,45 +1,50 @@ +""" +A demo that reads in an RSS XML document and emits an HTML file containing +a list of the individual items in the feed. +""" +  import sys +import codecs  from xml.sax import make_parser, handler  # --- Templates -top = \ -""" +top = """\  <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> -<HTML> -<HEAD> -  <TITLE>%s</TITLE> -</HEAD> - -<BODY> -<H1>%s</H1> +<html> +<head> +  <title>%s</title> +  <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> +</head> + +<body> +<h1>%s</h1>  """ -bottom = \ -""" +bottom = """  </ul> -<HR> -<ADDRESS> -Converted to HTML by sax_rss2html.py. -</ADDRESS> +<hr> +<address> +Converted to HTML by rss2html.py. +</address> -</BODY> -</HTML> +</body> +</html>  """  # --- The ContentHandler  class RSSHandler(handler.ContentHandler): -    def __init__(self, out = sys.stdout): +    def __init__(self, out=sys.stdout):          handler.ContentHandler.__init__(self) -        self._out = out +        self._out = codecs.getwriter('utf-8')(out)          self._text = ""          self._parent = None -        self._list_started = 0 +        self._list_started = False          self._title = None          self._link = None          self._descr = "" @@ -69,7 +74,7 @@ class RSSHandler(handler.ContentHandler):              elif name == "item":                  if not self._list_started:                      self._out.write("<ul>\n") -                    self._list_started = 1 +                    self._list_started = True                  self._out.write('  <li><a href="%s">%s</a> %s\n' %                                  (self._link, self._title, self._descr)) @@ -86,6 +91,7 @@ class RSSHandler(handler.ContentHandler):  # --- Main program -parser = make_parser() -parser.setContentHandler(RSSHandler()) -parser.parse(sys.argv[1]) +if __name__ == '__main__': +    parser = make_parser() +    parser.setContentHandler(RSSHandler()) +    parser.parse(sys.argv[1])  | 
