2014-04-10 34 views
0

說你有一些XML,其構造是這樣,但可以使用這些標籤具有更深的同一標籤名稱採取任何形狀,並且可以以怪異的方式重用:Beautifulsoup:雲霧流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行。基本上我想要做的就是使用希望的單個循環或儘可能少的循環遍歷每個單個標籤。如果可能的話,我打開比美麗的選擇更好的選擇。

回答

0

您正在尋找.children

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