【问题标题】:Google Sheet Script Null Error during loop循环期间的 Google Sheet Script Null 错误
【发布时间】:2017-01-25 07:55:39
【问题描述】:

我正在使用以下循环和 Google 脚本解析 XML 文件,但 XML 文件中的一个位置缺少其中一个子对象。所以整个过程返回一个空值。如何检索所有不为空的数据?

> function stugas() {
>   var live = new Array();   
>   var url ="http://xml.pinnaclesports.com/pinnacleFeed.aspx?sportType=Football&contest=no&sportSubType=NFL";
>   var parameters = {method : "get", payload : ""};   var xml =
>   UrlFetchApp.fetch(url, parameters).getContentText();   
>   var document = XmlService.parse(xml);
>   var games = document.getRootElement().getChild('events').getChildren('event');  
> if(document == null) {
>     document.getRootElement().getChild('events').getChildren('event');   }   for (var i=0; i < games.length; i++) {
>       vegas=[games[i].getChildText('event_datetimeGMT'),games[i].getChild('participants').getChildren('participant')[0].getChildText('participant_name'),
>                 games[i].getChild('participants').getChildren('participant')[0].getChildText('visiting_home_draw'),
>                 games[i].getChild('participants').getChildren('participant')[1].getChildText('participant_name'),
>                 games[i].getChild('participants').getChildren('participant')[1].getChildText('visiting_home_draw'),
>                 /**games[i].getChild('periods').getChildren('period')[0].getChild('moneyline').getChildText('moneyline_visiting'),
>                 games[i].getChild('periods').getChildren('period')[0].getChild('moneyline').getChildText('moneyline_home'),**/
>                 games[i].getChild('periods').getChildren('period')[0].getChild('spread').getChildText('spread_visiting'),
>                 games[i].getChild('periods').getChildren('period')[0].getChild('spread').getChildText('spread_home'),
>                 games[i].getChild('periods').getChildren('period')[0].getChild('spread').getChildText('spread_adjust_visiting'),
>                 games[i].getChild('periods').getChildren('period')[0].getChild('spread').getChildText('spread_adjust_home'),
>                 games[i].getChild('periods').getChildren('period')[0].getChild('total').getChildText('total_points'),
>                 games[i].getChild('periods').getChildren('period')[0].getChild('total').getChildText('over_adjust'),
>                 games[i].getChild('periods').getChildren('period')[0].getChild('total').getChildText('under_adjust')]
>       
>       
>       live.push(vegas);
>     }
>     return live;   }

【问题讨论】:

    标签: javascript google-apps-script xml-parsing google-sheets


    【解决方案1】:

    如果您以这种方式编写内部循环,则可以测试每个元素以查看它们是否存在(仅在此处为 moneyline 这样做):

    vegas = [];
    var game = games[i];
    vegas.push(game.getChildText('event_datetimeGMT'));
    var participant = game.getChild('participants').getChildren('participant');
    vegas.push(participant[0].getChildText('participant_name'));
    vegas.push(participant[0].getChildText('visiting_home_draw'));
    vegas.push(participant[1].getChildText('participant_name'));
    vegas.push(participant[1].getChildText('visiting_home_draw'));
    var period = game.getChild('periods').getChildren('period')[0];
    if (period.getChild('moneyline')) {
      vegas.push(period.getChild('moneyline').getChildText('moneyline_visiting'));
      vegas.push(period.getChild('moneyline').getChildText('oneyline_home'));
    }
    else {
      vegas.push("");
      vegas.push("");
    }
    var spread = game.getChild('periods').getChildren('period')[0].getChild('spread');
    vegas.push(spread.getChildText('spread_visiting'));
    vegas.push(spread.getChildText('spread_home'));
    vegas.push(spread.getChildText('spread_adjust_visiting'));
    vegas.push(spread.getChildText('spread_adjust_home'));
    vegas.push(period.getChild('total').getChildText('total_points'));
    vegas.push(period.getChild('total').getChildText('over_adjust'));
    vegas.push(period.getChild('total').getChildText('under_adjust'));
    

    【讨论】:

    • 谢谢哈罗德,你修好了
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-08-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多