## 3.3.1 Lists

Lists are normalized slightly more than the rest of the document. They are treated almost like sections in that they are only allowed to contain a minimal set of child node types. In fact, lists can only contain one type of child node: list item. The consequence of this is that any content before the first item in a list will be thrown out. In turn, list items will only contain paragraph nodes. The structure of all list structures will look like the structure in Figure 3.4.

Figure 3.4 Normalized structure of all lists

This structure allows you to easily traverse a list with code like the following.

    # Iterate through the items in the list node
    for item in listnode:

        # Iterate through the paragraphs in each item
        for par in item:

            # Print the text content of each paragraph
            print par.textContent

        # Print a blank line to separate each item
        print