printing indented html code

2005-06-24 Thread Lowell Kirsh
Is there a module or library anyone knows of that will print html code 
indented? What I'd like would be for a function or class which works 
like this:

htmlIndent(sys.stdout, 'htmlheadfoobar/head...')

and will print somethinkg like this to stdout:

html
   head
 foobar
   /head
   ...

My current way of doing this kind of stuff is less than ideal and will 
write such a function if it doesn't exist.

Thanks,
Lowell
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: printing indented html code

2005-06-24 Thread Lowell Kirsh
Thanks. At a glance, that looks like it's what I'm looking for.

Lowell

TechBookReport wrote:
 Lowell Kirsh wrote:
 
 Is there a module or library anyone knows of that will print html code 
 indented? What I'd like would be for a function or class which works 
 like this:

 htmlIndent(sys.stdout, 'htmlheadfoobar/head...')

 and will print somethinkg like this to stdout:

 html
   head
 foobar
   /head
   ...

 My current way of doing this kind of stuff is less than ideal and will 
 write such a function if it doesn't exist.

 Thanks,
 Lowell
 
 
 There are lots of HTML pretty printers around, but for starters take a 
 look at this: http://www.oreilly.com/catalog/pythonsl/chapter/ch05.html
 
 HTH
 ==
 TechBookReport - http://www.techbookreport.com
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: printing indented html code

2005-06-24 Thread Konstantin Veretennicov
On 6/24/05, Lowell Kirsh [EMAIL PROTECTED] wrote:
 Is there a module or library anyone knows of that will print html code
 indented?

Depends on whether you have to deal with xhtml, valid html or just
any, possibly invalid, pseudo-html that abounds on the net.

Here's an example of (too) simple html processing using standard
HTMLParser module:

from HTMLParser import HTMLParser

class Indenter(HTMLParser):

def __init__(self, out):
HTMLParser.__init__(self)
self.out = out
self.indent_level = 0

def write_line(self, text):
print  self.out, '\t' * self.indent_level + text

def handle_starttag(self, tag, attrs):
self.write_line(
'%s %s' % (tag, ' '.join('%s=%s' % (k, v) for k, v in attrs))
)
self.indent_level += 1

def handle_endtag(self, tag):
self.indent_level -= 1
self.write_line('/%s' % tag)

handle_data = write_line

# handle everything else...
# http://docs.python.org/lib/module-HTMLParser.html

if __name__ == '__main__':
import sys
i = Indenter(sys.stdout)
i.feed('htmlheadfoobar/headbody color=0body/body/html')
i.close()

- kv
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: printing indented html code

2005-06-24 Thread Lowell Kirsh
Looks good. I'll give it a try.

Konstantin Veretennicov wrote:
 On 6/24/05, Lowell Kirsh [EMAIL PROTECTED] wrote:
 
Is there a module or library anyone knows of that will print html code
indented?
 
 
 Depends on whether you have to deal with xhtml, valid html or just
 any, possibly invalid, pseudo-html that abounds on the net.
 
 Here's an example of (too) simple html processing using standard
 HTMLParser module:
 
 from HTMLParser import HTMLParser
 
 class Indenter(HTMLParser):
 
 def __init__(self, out):
 HTMLParser.__init__(self)
 self.out = out
 self.indent_level = 0
 
 def write_line(self, text):
 print  self.out, '\t' * self.indent_level + text
 
 def handle_starttag(self, tag, attrs):
 self.write_line(
 '%s %s' % (tag, ' '.join('%s=%s' % (k, v) for k, v in attrs))
 )
 self.indent_level += 1
 
 def handle_endtag(self, tag):
 self.indent_level -= 1
 self.write_line('/%s' % tag)
 
 handle_data = write_line
 
 # handle everything else...
 # http://docs.python.org/lib/module-HTMLParser.html
 
 if __name__ == '__main__':
 import sys
 i = Indenter(sys.stdout)
 i.feed('htmlheadfoobar/headbody color=0body/body/html')
 i.close()
 
 - kv
-- 
http://mail.python.org/mailman/listinfo/python-list