我已经从Companies House下载了一个包含大约200,000个html文件的压缩文件。
每个文件采用以下两种格式之一: 1)内联XBRL格式(.html文件扩展名)或2) XBRL格式(.xml文件扩展名)。查看最近可用的下载(6 December 2018),所有文件似乎都是以前的格式(.html文件扩展名)。
我正在使用R中的XBRL package来尝试并解析这些文件。
问题1: XBRL包是用于解析内联XBRL格式(.html)文件,还是只适用于XBRL (.xml)格式?如果没有,谁能告诉我在哪里可以解析内联XBRL格式的文件?我不能完全确定内联和非内联之间的区别。
假设XBRL包能够解析内联XBRL格式的文件,我遇到了一个错误,告诉我xbrl.frc.org.uk/FRS-102/2014-09-01/FRS-102-2014-09-01.xsd文件不存在。下面是我的代码:
install.packages("XBRL")
library(XBRL)
inst <- "./rawdata/Prod224_0060_00000295_20171130.html" # manually unzipped
options(stringsAsFactors = FALSE)
xbrl.vars <- xbrlDoAll(inst, cache.dir = "XBRLcache", prefix.out = NULL, verbose = TRUE)以及错误:
Schema: ./rawdata/https://xbrl.frc.org.uk/FRS-102/2014-09-01/FRS-102-2014-09-01.xsd
Level: 1 ==> ./rawdata/https://xbrl.frc.org.uk/FRS-102/2014-09-01/FRS-102-2014-09-01.xsd
Error in XBRL::xbrlParse(file) :
./rawdata/https://xbrl.frc.org.uk/FRS-102/2014-09-01/FRS-102-2014-09-01.xsd does not exists. Aborting.问题2.有人能用基本的术语解释一下这对我意味着什么吗?我是XBRL的新手。我是否需要找到这个xsd文件并将其放在某个地方?It seems to be located here,但我不知道如何处理它,也不知道将它放在哪里。
Here's a similar question that doesn't seem fully answered和链接都是西班牙语的,我不懂西班牙语。
一旦我能够解析一个单独的html XBRL文件,我的计划就是找出如何解析来自该网站的多个zip文件中的所有XBRL文件。
发布于 2019-10-02 08:04:56
我在美国证券交易委员会的数据上也遇到了同样的问题。
我完全遵循了pdw的指导,它起作用了!
仅供参考,我使用的代码
if (substr(file.name, 1, 5) != "http:") { 是
if (!(substr(file.name, 1, 5) %in% c("http:", "https"))) {我用trace('XBRL', edit=TRUE)破解了它。
发布于 2018-12-07 17:10:39
我不熟悉您正在使用的XBRL包,但是很明显,它错误地试图解析绝对URL (https://..)。作为本地文件。
快速浏览源代码就会发现问题所在:
XBRL.R行305:
fixFileName <- function(dname, file.name) {
if (substr(file.name, 1, 5) != "http:") {
[...]也就是说,它通过一个URL是否以"http:“开头来决定它是否是绝对URL,而你的URL以"https:”开头。可以很容易地修改一个补丁,使https URL也能通过此测试,我怀疑这将立即解决您的问题,尽管如果此代码使用URL库来确定URL是否绝对,而不是基于协议进行猜测,效果会好得多。
我不确定iXBRL文档的状态是什么。changelog中有一个注释,上面写着“报告使用内联XBRL文档”,我对此表示怀疑。虽然它可能会正确地找到内联文档的分类法,但我看不出它如何通过我看不到任何迹象的重要附加代码来正确地提取事实。
您可能想看看Arelle项目,它是一个绝对支持内联XBRL的替代开源处理器。
发布于 2021-06-22 01:39:01
正如pdw所述,问题在于包被硬编码以查找"http:“,并错误地将"https”路径视为本地路径。这是因为XBRL文件可以引用外部文件来实现模式等的标准定义。在您的示例中,这发生在Prod224_0081_00005017_20191231.html的第116行
一些人已经在github上派生了XBRL包,并修复了这一行为。您可以使用devtools::install_git()从https://github.com/cran/XBRL/network/members安装其中一个版本,这应该可以解决问题。
例如,使用此fork解析示例Companies House语句。
# remotes:::install_github("adamp83/XBRL")
library(XBRL)
x <- xbrlDoAll("https://raw.githubusercontent.com/stackoverQs/stackxbrlQ/main/Prod224_0081_00005017_20191231.html",cache.dir = "cache" verbose=TRUE))https://stackoverflow.com/questions/53651481
复制相似问题