我试图使用Beautiful来解析XBRL文档(一个标准标记的XML)。我试图找出标签“iic:inversionesfinancierasrvcotizada”的所有元素。当我使用这个函数时,它会返回一个结果,第一个是所需的条目。
soup.find('iic-com:inversionesfinancierasrvcotizada')返回XML。
<iic-com:inversionesfinancierasrvcotizada>
<iic-com:codigoisin contextref="FIM_T12018_V86902186_ia">ES0105130001</iic-com:codigoisin>
<iic-com:inversionesfinancierasdescripcion contextref="FIM_T12018_V86902186_ia">GLOBAL DOMINION ACCESS SA</iic-com:inversionesfinancierasdescripcion>
<dgi-lc-int:xcode_iso4217.eur contextref="FIM_T12018_V86902186_da">EUR</dgi-lc-int:xcode_iso4217.eur>
<iic-com:inversionesfinancierasimporte>
<iic-com:inversionesfinancierasvalor contextref="FIM_T12018_V86902186_ia" decimals="2" unitref="euro">190490</iic-com:inversionesfinancierasvalor>
<iic-com:inversionesfinancierasporcentaje contextref="FIM_T12018_V86902186_ia" decimals="2" unitref="pure">0.10</iic-com:inversionesfinancierasporcentaje>
</iic-com:inversionesfinancierasimporte>
<iic-com:inversionesfinancierasimporte>
<iic-com:inversionesfinancierasvalor contextref="FIM_T12018_V86902186_ipy" decimals="2" unitref="euro">185545</iic-com:inversionesfinancierasvalor>
<iic-com:inversionesfinancierasporcentaje contextref="FIM_T12018_V86902186_ipy" decimals="2" unitref="pure">0.11</iic-com:inversionesfinancierasporcentaje>
</iic-com:inversionesfinancierasimporte>
</iic-com:inversionesfinancierasrvcotizada>然而,当我尝试find_all或findAll方法时,我希望看到这个条目加上其他附加条目,但结果是。
soup.find_all('iic-com:inversionesfinancierasrvcotizada')屈服
[]我不知道我在这里做错了什么。
编辑:如果您想尝试完整的示例,首先需要从这里下载2018年( Trimestre 1 )下的第一个XBRL文档,我已经下载并命名为"trueval.XML“。然后我用来阅读的代码是:
from bs4 import BeautifulSoup as bs
import io
soup = bs(io.open("trueval.XML", encoding="ISO-8859-1"), "html.parser")发布于 2018-04-30 09:24:25
我给出的解决办法不是一个有效的办法,但它应该能使你达到目的。我在脚本中使用了选择器。试一试:
from bs4 import BeautifulSoup
element = """
<iic-com:inversionesfinancierasrvcotizada>
<iic-com:codigoisin contextref="FIM_T12018_V86902186_ia">ES0105130001</iic-com:codigoisin>
<iic-com:inversionesfinancierasdescripcion contextref="FIM_T12018_V86902186_ia">GLOBAL DOMINION ACCESS SA</iic-com:inversionesfinancierasdescripcion>
<dgi-lc-int:xcode_iso4217.eur contextref="FIM_T12018_V86902186_da">EUR</dgi-lc-int:xcode_iso4217.eur>
<iic-com:inversionesfinancierasimporte>
<iic-com:inversionesfinancierasvalor contextref="FIM_T12018_V86902186_ia" decimals="2" unitref="euro">190490</iic-com:inversionesfinancierasvalor>
<iic-com:inversionesfinancierasporcentaje contextref="FIM_T12018_V86902186_ia" decimals="2" unitref="pure">0.10</iic-com:inversionesfinancierasporcentaje>
</iic-com:inversionesfinancierasimporte>
<iic-com:inversionesfinancierasimporte>
<iic-com:inversionesfinancierasvalor contextref="FIM_T12018_V86902186_ipy" decimals="2" unitref="euro">185545</iic-com:inversionesfinancierasvalor>
<iic-com:inversionesfinancierasporcentaje contextref="FIM_T12018_V86902186_ipy" decimals="2" unitref="pure">0.11</iic-com:inversionesfinancierasporcentaje>
</iic-com:inversionesfinancierasimporte>
</iic-com:inversionesfinancierasrvcotizada>
"""
soup = BeautifulSoup(element, 'lxml')
for item in soup.select("[contextref^='FIM_T']"):
print(item.text)它产生的结果是:
ES0105130001
GLOBAL DOMINION ACCESS SA
EUR
190490
0.10
185545
0.11https://stackoverflow.com/questions/50096918
复制相似问题