-1

谁能告诉我如何使用谷歌脚本将 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 功能。

4

1 回答 1

1

查看前面关于解析 XML 文档的问题,因为 XBRL 是一种使用标准化业务术语分类法的 XML 应用程序。(请记住 - HTML 文档是带有标签或元素类型的 XML,特定于网页设计。)

例如,这个答案显示了一些非常基本的 xml 元素导航。你应该回想一下这个更详细地解释它的东西。

相同的技术适用,但使用元素类型,例如AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount(包含的元素id="Tag204"就是其中之一。)

<us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount id="Tag204" decimals="0" contextRef="D2013Q1" unitRef="Shares">201000</us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount>

XML 元素名称由两部分组成,一个以可选名称空间为前缀的必需名称。在这种情况下,命名空间是us-gaap,它告诉我们词汇源。

以下是使用此答案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);
}
于 2013-07-22T12:26:34.840 回答