我有以下代码可以将 XBRL 文件下载到 Google 电子表格中
function XBRLexplore() {
var ss = SpreadsheetApp.openById("0Aiy1DTQRndx6dFZLVDJfRnptbmRFUTM2S2lnUlRfWWd");
var Sheet = ss.getSheetByName("Sheet1"); // Activate sheet
var target = "http://www.sec.gov/Archives/edgar/data/867773/000086777313000052/spwr-20130630.xml";
var pageTxt = UrlFetchApp.fetch(target).getContentText();
var xbrl = Xml.parse(pageTxt,true).getElement()
var test=xbrl.getElements();
var output=[];
for (var i=0;i<test.length;i++){
var element=test[i]
var f=[element.contextref,element.id,element.unitref,element.decimals,e=element.Text]
output[i]=f;
}
Sheet.getRange(1,1,test.length,5).setValues(output);
}
这会将大约 1700 行乘 5 列放入 Google 电子表格中。
但是,我希望将对象“xbrl”中的所有子元素添加到每个元素旁边。
例如:目前,第 1421 行是以下数据:
D2013Q2QTD Fact-456FCC569047499F03F61D8FBE559EC1 shares -3 133973000
我希望它看起来像这样:
us-gaap WeightedAverageNumberOfDilutedSharesOutstanding D2013Q2QTD Fact-456FCC569047499F03F61D8FBE559EC1 shares -3 133973000
添加命名空间us-gaap
并WeightedAverageNumberOfDilutedSharesOutstanding
在前 2 列中
如果对于每个元素我可以使用某种getParent()
函数然后在循环期间将其粘贴在前 2 列中,那就太好了。
我正在尝试getNamespace()
在循环中使用 for 每个元素,但这给了我一个错误
var ff=element.getNamespace()