Google Script XML无法调用Null的方法

时间:2018-10-12 04:01:31

标签: google-apps-script xml-parsing

我创建了一个连接到API的脚本。该脚本成功解析数据并创建所需的输出。我的脚本遍历记录ID,以提取每个记录ID的数据。

并非每个父级都存在子节点。因此,在父节点具有子节点的地方,我的脚本可以完美运行。

var root2 = root[i].getChild('Assigned').getChildren('Staff');

但是,当我遇到一个不存在子节点的父ID时,会出现此错误。 IE中的客户端尚未在源数据中分配人员到该记录,因此数据节点人员不存在。

  

TypeError:无法调用null的方法“ getChildren”。

如何处理此错误并忽略并让代码在发生这种情况时继续运行?我尝试过

if(root[i].getChild('Assigned').getChildren('Staff') != '') {

Code

}

但是这仍然会破坏代码,我会收到错误消息。

1 个答案:

答案 0 :(得分:0)

我认为问题的原因是root[i].getChild('Assigned')null,并且在脚本中,即使父级{Staff中未包含Assigned ,没有错误发生。为了消除此问题,如何检查root[i]是否具有Assigned的孩子?请尝试以下示例脚本。

示例脚本:

if (root[i].getChildren().some(function(e) {return e.getName() == 'Assigned'})) {
  // do something
}

在此脚本中,它检查root[i]是否具有Assigned的子项,并且在找到子项时,此if变为true。因此,如果root[i]没有Assigned的子代,则if变成false,并且do something不会运行。

注意:

  • 我根据您所提出的问题准备了该脚本。但是我不确定实际的XML数据。因此,如果该脚本不是您想要的脚本,您是否可以提供可以复制您的情况的XML数据或示例数据?通过此类示例数据,我想对此进行修改。

参考: