def get_list(node, tag):
    """
    Get sub-nodes of this node by their tag, and make sure to return a list.

    The problem here is that xmltodict returns a nested dictionary structure,
    whose substructures have different *types* if there's repeated nodes
    with the same tag. So a list of one thing ends up being a totally different
    thing than a list of two things.

    So, here, we look up a sub-node by its tag, and return a list regardless of
    whether it matched 0, 1, or more things.
    """
    subnode = node.get(tag, [])
    if isinstance(subnode, list):
        return subnode
    else:
        return [subnode]