Velocity Reviews

Velocity Reviews (http://www.velocityreviews.com/forums/index.php)
-   Python (http://www.velocityreviews.com/forums/f43-python.html)
-   -   Re: Build unordered list in HTML from a python list (http://www.velocityreviews.com/forums/t726978-re-build-unordered-list-in-html-from-a-python-list.html)

Stefan Behnel 06-30-2010 10:47 AM

Re: Build unordered list in HTML from a python list
 
Nico Grubert, 30.06.2010 10:34:
> I have this python list that represets a sitemap:
>
> tree = [{'indent': 1, 'title':'Item 1', 'hassubfolder':False},
> {'indent': 1, 'title':'Item 2', 'hassubfolder':False},
> {'indent': 1, 'title':'Folder 1', 'hassubfolder':True},
> {'indent': 2, 'title':'Sub Item 1.1', 'hassubfolder':False},
> {'indent': 2, 'title':'Sub Item 1.2', 'hassubfolder':False},
> {'indent': 1, 'title':'Item 3', 'hassubfolder':False},
> {'indent': 1, 'title':'Folder 2', 'hassubfolder':True},
> {'indent': 2, 'title':'Sub Item 2.1', 'hassubfolder':False},
> {'indent': 2, 'title':'Folder 2.1', 'hassubfolder':True},
> {'indent': 3, 'title':'Sub Item 2.1.1', 'hassubfolder':False},
> {'indent': 3, 'title':'Sub Item 2.1.2', 'hassubfolder':False},
> ]
>
> From that list I want to create the following HTML code:
>
> <ul id="tree">
> <li>Item 1</li>
> <li>Item 2</li>
> <li>Folder 1
> <ul>
> <li>Sub Item 1.1</li>
> <li>Sub Item 1.2</li>
> </ul>
> </li>
> <li>Item 3</li>
> <li>Folder 2
> <ul>
> <li>Sub Item 2.1</li>
> <li>Folder 2.1
> <ul>
> <li>Sub Item 2.1.1</li>
> <li>Sub Item 2.1.2</li>
> </ul>
> </li>
> </ul>
> </li>
> </ul>
>
> If an item of the list has 'True' for the 'hassubfolder' key than a new
> "<ul><li>" must be created instead of "</li>" after its title. (See
> "Folder 2" node in the HTML code above.
>
> My problem is: How do I keep track of the closing tags while iterating
> over the python list?


Don't. Just use a tool for generating the XML, such as ElementTree's builder.

http://effbot.org/zone/element-builder.htm
http://svn.effbot.org/public/stuff/s...lib/builder.py

Stefan



All times are GMT. The time now is 01:16 PM.

Powered by vBulletin®. Copyright ©2000 - 2014, vBulletin Solutions, Inc.
SEO by vBSEO ©2010, Crawlability, Inc.