【问题标题】:Beautifulsoup: Soupy runny xml, single loop iterate through each itemBeautifulsoup:Soupy runny xml,单循环遍历每个项目
【发布时间】:2014-04-10 03:08:54
【问题描述】:

假设你有一些类似这样结构的 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 更好的选择。

【问题讨论】:

    标签: python xml beautifulsoup


    【解决方案1】:

    您正在寻找.children:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-10-30
      • 2018-06-14
      • 1970-01-01
      • 1970-01-01
      • 2013-07-19
      • 2018-09-15
      • 1970-01-01
      相关资源
      最近更新 更多