2017-07-07 86 views
0

我使用BeautifulSoup find_all()获取所有xmlo标签。BeautifulSoup find_all()不返回XML

但是,当我尝试迭代方法返回,它的一个字符串!我想要所有的“GarantidorFielDepositario”(我得到这与find_all())标签,我想读取所有儿童标签(如“TipoGarantidorFielDepositario”,“PrincipalGarantidor”等)的值。在第一时刻标签

(...) 
    <fun:QtdMoeda>1</fun:QtdMoeda> 
    <!--Optional:--> 
    <fun:Observacao>teste</fun:Observacao> 
    <!--Optional:--> 
    <fun:GarantidorFielDepositario> 
    <!--Zero or more repetitions:--> 
    <fun:GarantidorFielDepositario> 
      <fun:TipoGarantidorFielDepositario>G</fun:TipoGarantidorFielDepositario> 
      <!--Optional:--> 
      <fun:CPFCNPJGarantidorFielDepositario>003.570.739-91</fun:CPFCNPJGarantidorFielDepositario> 
      <!--Optional:--> 
      <fun:PrincipalGarantidor>N</fun:PrincipalGarantidor> 
      </fun:GarantidorFielDepositario> 
    </fun:GarantidorFielDepositario> 
</fun:GarantiaSaida> 

后的标签,我只是想打印的子标签,但是当我尝试,它不显示任何东西,我认为它是因为find_all()返回一个字符串,而不是XML。

for cada in rootxml.find_all(retornoForEachVar): 
    print '------' 
    print cada.tag 

对于为例,在这种情况下,变量“retornoForEachVar”的值为“GarantidorFielDepositario”,给我所有的“GarantidorFielDepositario”标签。但是print cada.tag在屏幕上显示“none”。

可以find_all()给我一个XML值? 我必须将结果解析为XML吗?

+0

你是如何创建'rootxml'汤?解析器是什么? –

+0

rootxml = bs4.BeautifulSoup(open('rootRequest.xml').read(),'xml') – Edgard

回答

0

打印的孩子,可以做

for cada in rootxml.find_all(retornoForEachVar): 
    children = cada.findChildren() 
    for child in children: 
     print child 
+0

user8123426,这里是traceback:AttributeError:'NavigableString'对象没有属性'tag' – Edgard