首页 > 解决方案 > 使用递归函数解析 XML 时,如何从该函数返回字符串或数组?

问题描述

我有一个有效的递归函数,它通过 XML 文档寻找匹配的节点名称,然后记录匹配的值...我正在尝试修改它以返回字符串或数组,但无法计算出去。

这是在 Google Apps 脚本中。我尝试将一个空白字符串传递给函数,然后在最后返回它,但它不起作用。这是工作记录器功能:

function logChildren(elements, dataRequired){

 for (var i = 0; i < elements.length; i++) {
  if (elements[i].getName() == dataRequired){
   Logger.log(elements[i].getText());
  }
  if(elements[i].getContentSize() > 1){
    var children = elements[i].getChildren();
    logChildren(children, dataRequired);
  }
 } 

};

我尝试传入一个空字符串,然后像这样返回它,但它不起作用:

function logChildren(elements, dataRequired, str){

 for (var i = 0; i < elements.length; i++) {
  if (elements[i].getName() == dataRequired){
   str = str + ", " + elements[i].getText();
  }
  if(elements[i].getContentSize() > 1){
    var children = elements[i].getChildren();
    logChildren(children, dataRequired, str);
  }
 } 

return str
};

如何获取此函数的字符串或数组,而不仅仅是控制台记录它?

标签: javascriptxmlrecursiongoogle-apps-script

解决方案


而不是返回 str 尝试没有它,因为 str 将具有所有值。如果你返回 str 它可能会折叠当前的迭代。请让我们知道这是否有效


推荐阅读