我需要从 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 ) 这样的文件,其中总费用被分成不同的部分,并带有扩展分类法。
我的问题是
无论如何,如果可以简单地使用 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/