繁体   English   中英

Beautifulsoup:稀烂的xml,单循环遍历每个项目

[英]Beautifulsoup: Soupy runny xml, single loop iterate through each item

假设您有一些XML的结构如下,但是使用这些标签时可以采用任何形状,且标签名称更深,并且可能以怪异的方式重复使用:

<a>
    <b>
        <c />
    </b>
    <b>
        <c />
    </b>
    <b>
        <b>
            <d>
                <b>
                    <e>
                        <f>
                            <c />
                        </f>
                    </e>
                </b>
                <b>
                    <e>
                        <f>
                            <c />
                        </f>
                    </e>
                </b>
            </d>
        </b>
    </b>
    <b>
        <b>
            <c />
        </b>
    </b>
</a>

我想让它们按从上到下的顺序逐一遍历每个标签,重复的标签可以按任何顺序或结构使用。 我想使用beautifulsoup逐个浏览每个标签。 例如:

soup = BeautifulSoup(xmlcode, "xml")
for asd in soup.findAll(True, recursive=False):
    print asd.prettify()
    print "---------"

所有这些返回都是一个大的bs4.element.Tag。 我希望它按出现的顺序返回19行。 基本上,我要做的就是希望使用单个循环或尽可能少的循环遍历每个单个标签。 我可能会提供比beautifulsoup更好的选择。

您正在寻找.children

xml_soup = BeautifulSoup(xml, "xml")
for tag in xml_soup.children:
    print tag

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM