有人能告诉我如何使用谷歌脚本将XBRL数据导入谷歌电子表格吗?
http://www.fossil.com/attachments/en_US/financials/2013/fosl-20130330.xml
这是链接。
function XBRLexplore() {
var target = "http://www.fossil.com/attachments/en_US/financials/2013/fosl-20130330.xml";
var pageTxt = UrlFetchApp.fetch(target).getContentText();
var pageDoc = Xml.parse(pageTxt,true);
//var temp=getDivById( pageDoc.getElement(), 'Tag204' );
//var temp=getElementById('Tag204')
}
我似乎无法将“tag204”作为第一个元素。不确定如何正确使用get by id函数。
答案 0 :(得分:1)
关于解析XML文档,请查看previous questions,因为XBRL是使用标准化业务术语分类的XML应用程序。 (请记住 - HTML文档是带有标记或元素的XML,特定于网页设计的类型。)
例如,this answer显示了xml元素的一些非常基本的导航。你应该回忆一下this one更详细地解释它。
相同的技术适用,但使用AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount
等元素类型(包含id="Tag204"
的元素就是其中之一。)
<us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount id="Tag204" decimals="0" contextRef="D2013Q1" unitRef="Shares">201000</us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount>
XML元素名称由两部分组成,前缀为可选命名空间的必需名称。在这种情况下,名称空间为us-gaap
,它告诉我们词汇来源。
以下是使用this answer中介绍的getElementByVal()
实用程序获取该元素的方法,并将其写入电子表格:
function xbrl() {
var target = "http://www.fossil.com/attachments/en_US/financials/2013/fosl-20130330.xml";
var pageTxt = UrlFetchApp.fetch(target).getContentText();
var xbrl = Xml.parse(pageTxt,true).getElement();
var Tag204 =
getElementByVal( xbrl,
'AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount',
'id',
'Tag204' );
var data = [];
var row = [];
var name = Tag204.getName().getLocalName();
row.push(name);
var attributes = Tag204.getAttributes();
for (var j=0; j<attributes.length; j++) {
row.push(attributes[j].toXmlString())
}
data.push(row);
var sheetId = '---Sheet-Id---';
var sheet = SpreadsheetApp.openById(sheetId).getSheetByName("XBRL");
sheet.getRange(1,1,data.length,data[0].length).setValues(data);
}