首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >美丽的汤找到了结果,但是所有的发现都是空的。

美丽的汤找到了结果,但是所有的发现都是空的。
EN

Stack Overflow用户
提问于 2018-04-30 08:44:43
回答 1查看 281关注 0票数 2

我试图使用Beautiful来解析XBRL文档(一个标准标记的XML)。我试图找出标签“iic:inversionesfinancierasrvcotizada”的所有元素。当我使用这个函数时,它会返回一个结果,第一个是所需的条目。

代码语言:javascript
复制
soup.find('iic-com:inversionesfinancierasrvcotizada')

返回XML。

代码语言:javascript
复制
<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方法时,我希望看到这个条目加上其他附加条目,但结果是。

代码语言:javascript
复制
soup.find_all('iic-com:inversionesfinancierasrvcotizada')

屈服

代码语言:javascript
复制
[]

我不知道我在这里做错了什么。

编辑:如果您想尝试完整的示例,首先需要从这里下载2018年( Trimestre 1 )下的第一个XBRL文档,我已经下载并命名为"trueval.XML“。然后我用来阅读的代码是:

代码语言:javascript
复制
from bs4 import BeautifulSoup as bs
import io

soup = bs(io.open("trueval.XML", encoding="ISO-8859-1"), "html.parser")
EN

回答 1

Stack Overflow用户

发布于 2018-04-30 09:24:25

我给出的解决办法不是一个有效的办法,但它应该能使你达到目的。我在脚本中使用了选择器。试一试:

代码语言:javascript
复制
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)

它产生的结果是:

代码语言:javascript
复制
ES0105130001
GLOBAL DOMINION ACCESS SA
EUR
190490
0.10
185545
0.11
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50096918

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档