BeautifulSoup find_all()不返回XML

时间:2017-07-07 13:42:49

标签: python xml beautifulsoup lxml

我使用BeautifulSoup find_all()获取所有xmlo标记。

但是当我尝试迭代方法返回时,它是一个字符串!

我想要所有" GarantidorFielDepositario"(我用find_all())标签得到这个并且我想读取所有儿童标签的值(例如" TipoGarantidorFielDepositario"," PrincipalGarantidor& #34;依此类推)。标签后标记

(...)
  <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  

例如,在这种情况下,变量&#34; retornoForEachVar&#34;有价值&#34; GarantidorFielDepositario&#34;给我所有的&#34; GarantidorFielDepositario&#34;标签。但是打印cada.tag显示&#34; none&#34;在屏幕上。

find_all()可以为我带来XML值吗? 我必须将结果解析为XML吗?

1 个答案:

答案 0 :(得分:0)

打印孩子,可以做到

server.route({
  method: 'GET',
  path:'/file', 
  handler: function (request, reply) {

    var fileData = // get file content; 
    var mime = // get file mime-type;

    var fileBuffer = new Buffer(fileData, 'base64');
    reply(fileBuffer)
      .header('Content-disposition', 'attachment; filename=' + fileName)
      .header('Content-type', mime).header('Content-length', fileBuffer.length).encoding('binary');
  }
})