美丽的汤找到了结果,但是芬德尔得到了empy lis

2024-06-26 10:49:18 发布

您现在位置:Python中文网/ 问答频道 /正文

我尝试使用beautifulsoup来解析一个XBRL文档(一个标准的标记XML)。我试着找到所有有“iic”标签的元素-通讯:Inversionesfinacierarvcotizada". 当我使用find函数时,它返回一个结果,即所需条目的第一个。在

soup.find('iic-com:inversionesfinancierasrvcotizada')

返回XML

^{pr2}$

但是,当我尝试find_all或findAll方法时,我希望看到这个条目和其他附加条目,但是结果是。在

soup.find_all('iic-com:inversionesfinancierasrvcotizada')

屈服

[]

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

编辑:如果您想尝试完整的示例,首先需要从here下载2018年下的第一个XBRL文档Trimestre 1获取文档。我已经下载并命名了它“真值.XML". 我用来阅读的代码是:

from bs4 import BeautifulSoup as bs
import io

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

Tags: 文档ioimportcom标准bs条目xml
1条回答
网友
1楼 · 发布于 2024-06-26 10:49:18

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

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)

其结果是:

^{pr2}$

相关问题 更多 >