我需要从 SEC 10-K 文件中获取一些事实,例如总收入、毛利润、毛利率、运营费用等以及相应的背景。

对于 https://www.sec.gov/Archives/edgar/data/1318605/000156459018002956/tsla-20171231.xml 之类的文件,仅使用 XPath 来找出少数必需的元素和值似乎是可行的。
但是有像 ( https://www.sec.gov/Archives/edgar/data/19617/000001961718000057/jpm-20171231.xml ) 这样的文件,其中总费用被分成不同的部分,并带有扩展分类法。

我的问题是

  • 处理此类文件的可靠方法是什么?比如说,如果我只想要总运营支出。有没有可靠的方法来找到我需要阅读的元素,然后可以总结?
  • 我试过使用 UBMatrix 库来读取 xbrl 文件。它适用于某些文件(非 SEC,可以读取节点值),但对于 SEC 10-K 文件会引发 NPE。 SEC 的 xbrls 实例文档失败是否有特殊原因? (虽然还没有检查库代码)

  • 无论如何,如果可以简单地使用 XPath 来完成,我更愿意这样做。
    xbrl 文档的有效性并不重要。

    最佳答案

    处理 XBRL 文件的最可靠方法是使用 XBRL 处理库。 Java 中有一些,一些是专有的(收费)和一些开源。

    xbrl.org 上有维护的工具和服务列表:

    https://www.xbrl.org/the-standard/how/tools-and-services/

    据我所知,SEC 文件是可靠的,被很多人广泛使用,并在许多处理器上进行了测试。如果 UBMatrix 存在问题,例如空指针异常,我建议与他们联系并让他们知道,以便他们可以解决它。

    绝对(理论上)也可以使用 XPath/XQuery/XSLT,因为 XBRL 使用 XML 语法,但您需要注意,通过解析上下文(这是关系术语中的连接),您实际上会从头开始重新实现一个不完整的 XBRL 处理器,伴随着错误和沉没成本的风险。除了核心 XBRL 规范(例如,维度等)之外,还有许多微妙之处和规范生态系统需要考虑,以免检索到错误的值。通过使用现有的处理器,您将建立在其他人已经为此投入的努力之上,以便使所有 XBRL 语义正确:这是 XBRL 作为标准的一个好处。

    最后要说明的是:用于总收入、毛利润等的确切 XBRL 标签可能因公司而异,因为有些公司使用自己的标签(扩展名)而不是 US-GAAP 标签。此外,一些公司省略了一些需要消费者根据其他事实计算的事实。这可以使用 XBRL 处理器之上的映射和公式来解决。查尔斯·霍夫曼 (Charles Hoffman) 分享了有关此事的报告并提供了许多有用的建议,并在线维护了此类映射(搜索关键字是:基本会计概念、报告框架)。

    关于java - 阅读 XBRL 事实 - Java,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/53418970/

    10-16 09:14