【问题标题】:Reading and parsing a XBRL file in Perl (or converting into normal XML / JSON!)在 Perl 中读取和解析 XBRL 文件(或转换成普通的 XML / JSON!)
【发布时间】:2020-07-24 14:24:50
【问题描述】:

我在这上面画了一个空白。 XBRL 似乎是基于 XML 的——但似乎还没有公认的结构。我正在从 http://download.companieshouse.gov.uk/en_monthlyaccountsdata.html 获取数据,我想将文件解析为可用数据

您应该如何处理 XBRL 文件并输出可用的数据结构?例如,我想看看去年的总营业额回报率是多少。

这一定是可能的,否则公司大楼提供数据的意义何在?

非常感谢任何指导!我觉得我在这个圈子里转圈圈

【问题讨论】:

  • 似乎有例如XBRL::JPFR 在 CPAN 上可以提供帮助。
  • @choroba 谢谢。我错过了什么吗?至少文档似乎很少。另外,这似乎只适用于“日本财务报告”?
  • 如果您查看该模块的源代码,它在内部使用XML::LibXML
  • @AKHolland 谢谢 - 不知道如何使用它?它似乎不是一个“正确”的 XML 文件 - 所以你猜你必须搞砸它吗? Companies House 提供的示例文件:pastebin.com/QTZ2YMJp
  • Re "但似乎没有一致的结构",使用的架构在here 中找到。 ....hmmm,您放置在 pastebin 中的文档没有{http://www.xbrl.org/2003/instance}xbrl 的实例,但我认为您可以将{http://www.w3.org/1999/xhtml}body 元素与{http://www.xbrl.org/2003/instance}xbrl 具有相同的架构,除了还允许额外的元素(来自其他命名空间)。

标签: perl xbrl


【解决方案1】:

XBRL 遵循基于 XML 构建的 XBRL specifications。 Companies House 使用 XBRL 的 Inline XBRL (iXBRL) 变体,其中 XBRL 标记嵌入在 HTML 文档中。

说文档不遵循任何定义的结构是不准确的;它们遵循上述规范,并在 Companies House 收到后进行验证。

但是,Companies House 收集的 iXBRL 报告是财务报告,遵循适用的会计准则,并且会计准则允许每家公司报告的确切内容存在很大差异。

XBRL 中的数据通过将值(例如 1,000)与概念(例如“收入”)和某些维度(例如期间和单位)相关联来标记。

会计术语(例如“资产”、“收入”等)被定义为分类中的概念。由于会计准则允许的变化,您可能会发现并非所有公司都会披露您正在寻找的概念。

在 Companies House 数据的情况下,由于许多较小的公司可以并且确实提交不包括损益表的简短账目,因此通常根本不报告“营业额”,这一事实使情况变得更加复杂。向 Companies House 提交 iXBRL 是可选的,许多公司选择通过纸质文件来减少其数据的可访问性。

为了使数据更易于使用,我强烈建议使用现有的 XBRL 处理器,它不仅可以读取 iXBRL 报告,还可以读取相关的分类。

使用最广泛的开源处理器是Arelle,也有许多商业处理器可用(参见https://software.xbrl.org)。

Arelle 将允许您通过 Python API 处理 XBRL 数据,或者可用于将其转换为新的 xBRL-JSON 格式。

【讨论】:

  • Re “Companies House 使用 XBRL 的内联 XBRL (iXBRL) 变体,其中 XBRL 标签嵌入在 HTML 文档中。”,根据链接的页面OP,它同时提供标准和内联变体
  • @pdw 谢谢 - 只需安装 Arelle 就可以试一试。转换为 xBRL-JSON 听起来很有希望
  • @pdw - 嗯,所以我已经安装了模块(sudo apt-get install python2.7 python2.7-lxml python2.7-tk),然后将源代码上传到 /arelle - 然后尝试运行:cd /arelle; ./arelleCmdLine --help,但它没有运行.我究竟做错了什么? (文档似乎有点稀缺)。我在 Ubuntu 18.04
  • @ikegami Companies House 在采用 iXBRL 之前支持 XBRL。我不确定 XBRL 是否仍被接受,但我希望所有当前的文件都是 iXBRL,因为这是 HMRC 要求的纳税申报格式。
  • @AndrewNewby 很高兴你成功了。 “--facts”选项实际上为您提供了一种较旧的、Arelle 特定的 JSON 格式。如果您真的想要 xBRL-JSON,请使用:--plugins saveLoadableOIM --saveLoadableOIM foo.json
猜你喜欢
  • 1970-01-01
  • 2012-10-29
  • 2013-07-17
  • 1970-01-01
  • 2012-04-30
  • 1970-01-01
  • 2012-11-22
  • 2011-04-01
  • 1970-01-01
相关资源
最近更新 更多