0

2番目の例は、[function getValue]を返す例で、これを修正しようとしていますが、問題が何であるかがわかりません。

私はグーグルスクリプトでxmlparseをいじっています、私が解析したいxmlは要素の属性にすべての関連データを保持します。

そのxml形式のサンプルは次のとおりです:https ://api.eveonline.com/account/characters.xml.aspx?keyID = 1409941&vCode = xagxMH966J2EQinVpoFOBB5H1UidCwsjoTwtBKhhvMVZWqq6Jio4mkiBwv026Olc

動作するコードは次のとおりです(ログ[ctrl] + [enter]で表示):

function dialogDisplay() {
  var xmlstring = Xml.parse('<rowset name="characters" key="characterID" columns="name,characterID,corporationName,corporationID"><row name="Jonah Younbrog" characterID="90131303" corporationName="House of Praetor" corporationID="523373135"/><row name="Mador Younbrog" characterID="90149709" corporationName="House of Praetor" corporationID="523373135"/><row name="Marc Younbrog" characterID="747451028" corporationName="House of Praetor" corporationID="523373135"/></rowset>');
  var attributes = xmlstring.getElement().getAttributes();
  for (var i in attributes) {
    Logger.log(attributes[i].getValue());
  }
}

そして、これが機能しないコードです。要素名も(正常に)ログに記録し、ネストされたforを使用してxmlを調べます。

function fetchToLogger() {
  var assetURL = "https://api.eveonline.com/account/characters.xml.aspx?keyID=1409941&vCode=xagxMH966J2EQinVpoFOBB5H1UidCwsjoTwtBKhhvMVZWqq6Jio4mkiBwv026Olc";
  var assetstring = UrlFetchApp.fetch(assetURL).getContentText();
  var xmlstring = Xml.parse(assetstring, false);

  var elements = xmlstring.eveapi.result.getElements();
  for (var a in elements) {

    Logger.log(elements[a].getName().getLocalName());

    var attributes = elements[a].getAttributes();
    for (var x in attributes) {

      Logger.log(attributes[x].getValue);
    }

    var subelements = elements[a].getElements();
    for (var b in subelements) {

      Logger.log(subelements[b].getName().getLocalName());

      var subattributes = subelements[b].getAttributes();
      for (var y in attributes) {

        Logger.log(attributes[y].getValue);
      }

    }

  }

}
4

2 に答える 2

0

実際の関数を呼び出していません。次のように変更します。

Logger.log(attributes[x].getValue());

これLogger.log(attributes[x].getValueは単なる関数への参照であり、これがコンソールに表示されるものであることに注意してください。

于 2012-10-19T19:08:45.807 に答える
0

.getValue関数です。.getValue() たとえば、次のように使用する必要があります。

Logger.log(attributes[x].getValue());
于 2012-10-19T19:09:01.573 に答える