查看前面关于解析 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);
}