2011-11-18 42 views
4

請原諒,如果我使用了錯誤的術語,但這是我想要完成的。我試圖從嵌套標籤,如別名,付款,金額等等拉動屬性和文本信息......但是我的示例代碼塊只能從子元素中提取信息,而不是從子元素中提取任何信息。如何用python解析嵌套的XML標籤?

我該如何着手使用elementtree來嘗試獲取子元素的子元素? **

  • 示例XML塊:

**

<root> 
    <host name="comp1"> 
     <alias>smith_laptop</alias> 
     <ipAddr>102.168.1.1</ipAddr> 
     <owner>Mr_Smith</owner> 
     <payment type="credit"> 
     <card type="Master Card"/> 
     <amount>125.99</amount> 
     <cardOwner name="John Smith"/> 
     <expiration date="Oct 24"/> 
     </payment> 
    </host> 

    <host name="comp2"> 
     <alias>matt_laptop</alias> 
     <ipAddr>102.168.1.2</ipAddr> 
     <owner>Mr_Mat</owner> 
     <payment type="cash"> 
     <amount>100.00</amount> 
     </payment> 
    </host> 
</root> 

**

  • 一次代碼,請,如果我使用它錯誤地原諒我的術語代碼段:

**

import os 
    from xml.etree import ElementTree as ET 

    def main(): 

     rootElement = ET.parse("text.xml").getroot() 

     for subelement in rootElement: 
      print "Tag: ",subelement.tag 
      print "Text: ",subelement.text 
      print "Aribute:",subelement.attrib,"\n" 
      print "Items:",subelement.items(),"\n" 

    if __name__ == "__main__": 
     main() 

回答

4
subelement.getchildren() 

for subelement in rootElement: 
    ... 
    for subsub in subelement: 
     print subsub.tag