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 行 x 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 each 要素を使用しようとしていますが、エラーが発生します
var ff=element.getNamespace()