googledocs の importXML 関数は 50 アイテムしか使用できないため、置き換えようとしています。
現在の式は次のようになります。
=ImportXML($K$10,"sum(//row[@typeid='"B1&"']/@quantity)")
K10 セルには、次のような XML を取得するための URL が含まれています。
<eveapi version="2">
<currentTime>2012-09-09 09:33:55</currentTime>
<result>
<rowset name="assets" key="itemID" columns="itemID,locationID,typeID,quantity,flag,singleton">
<row itemID="1003898262197" locationID="31001059" typeID="17167" quantity="1" flag="0" singleton="1" rawQuantity="-1">
<rowset name="contents" key="itemID" columns="itemID,typeID,quantity,flag,singleton">
<row itemID="1003962719504" typeID="253" quantity="3" flag="0" singleton="0"/>
</rowset>
</row>
<row itemID="1003898281453" locationID="31001059" typeID="17408" quantity="1" flag="0" singleton="1" rawQuantity="-1">
<rowset name="contents" key="itemID" columns="itemID,typeID,quantity,flag,singleton">
<row itemID="1003962379527" typeID="253" quantity="3" flag="0" singleton="0"/>
</rowset>
</row>
<row itemID="1003908898633" locationID="31001059" typeID="17175" quantity="1" flag="0" singleton="1" rawQuantity="-1"/>
<row itemID="1003908901859" locationID="31001059" typeID="17174" quantity="1" flag="0" singleton="1" rawQuantity="-1"/>
<row itemID="1003908954610" locationID="31001059" typeID="17177" quantity="1" flag="0" singleton="1" rawQuantity="-1"/>
</rowset>
</result>
<cachedUntil>2012-09-09 10:20:25</cachedUntil>
</eveapi>
私がやろうとしているのは (おそらく ImportXML 式からわかるように)、特定の typeID の数量値の合計を取得することです。typeID は、関数の入力パラメーターになります。
function _retrieveXML() {
// https://api.eveonline.com/corp/AssetList.xml.aspx?keyID=688782&vCode=q52TpGFTqNCziMMmZ7TYgpXCoGa7U0VBxyH7LuS6Ubtdakbi5t5UDMyf1U5WLpZA&characterID=90127511
var keyID = "xxxxxx"
var vCode = "q52TpGFTqNCziMMmZ7TYgpXCoGa7U0VBxyH7LuS6Ubtdakbi5t5UDMyf1U5WLpZA"
var characterID = "xxxxxxxx"
var parameters = {
method : "post",
payload : "keyID=" + keyID + "&vCode=" + vCode + "&characterID=" + characterID
};
var xmlFeed = UrlFetchApp.fetch("https://api.eveonline.com/corp/AssetList.xml.aspx",parameters);
var xmldoc = Xml.parse(xmlFeed.getContentText(), false);
var records = xmldoc.eveapi.result.rowset.getElements("typeID");
var doc = SpreadsheetApp.getActiveSpreadsheet();
var cell = doc.getRange('a1');
var index = 0;
for (var i in xmldoc) {
var row = xmldoc[i];
cell.offset(index, 0).setValue(row[i]);
}
index++;
}
情報を Google スプレッドシートで使用できる形式にする方法がわかりません。オブジェクトの 1 つの特定の値 (typeID、数量など) を取得し、それらを使用して同じ行の別の値を取得する方法。
どんな助けでも大歓迎です。