Работя върху скрипт за приложения, който зарежда xml данни във функция и анализира данните въз основа на въвеждане от потребителя.
XML е прост и ясен:
<?xml version="1.0" encoding="UTF-8"?>
<Records>
<Record>
<username>jjohnson</username>
<firstName>John</firstName>
<lastName>johnson</lastName>
<email>[email protected]</email>
</Record>
<Record>
<username>bsimmons</username>
<firstName>ben</firstName>
<lastName>simmons</lastName>
<email>[email protected]</email>
</Record>
...etc
</Records>
Функцията взема XML и зарежда данните в масив от обекти и се опитва да анализира данните въз основа на потребителското име и да покаже съдържанието като ред в google sheets.
function XMLCONTACT(username) {
var url = '<XML source>';
var ContactXml = UrlFetchApp.fetch(url).getContentText();
var document = XmlService.parse(ContactXml);
var root = document.getRootElement();
var arr = [];
var XMLChildren = root.getChildren("Record");
for (var i = 0; i < XMLChildren.length; i++) {
arr.push({
username: XMLChildren[i].getChild("username").getText(),
firstName: XMLChildren[i].getChild("firstName").getText(),
lastName: XMLChildren[i].getChild("lastName").getText(),
email: XMLChildren[i].getChild("email").getText()
});
}
var newarr = []
for(var j= 0; j < arr.length; j++){
if(arr[j].username === username ){
newarr.push(arr[j]);
}
}
return newarr;
}
Проблемът е, че когато функцията се изпълнява, нищо не се връща. Мога да получа листове за показване на съдържанието на масива без обекти, но не и филтрирания изход.
Благодаря за вашата помощ!
Logger.log(arr)
някъде и вижте какво е регистрирано. - person Liora Haydont   schedule 31.05.2018Logger
за сложни данни е да използватеconsole
и след това да прегледате (и да взаимодействате!) с регистрирания обект в Stackdriver. - person tehhowch   schedule 31.05.2018@username
. По този начин потребителят може да получи известие за вашия отговор. КогатоXMLCONTACT("jjohnson")
се изпълнява, функцията връща[{"username":"jjohnson","firstName":"John","lastName":"johnson","email":"[email protected]"}]
. За тази ситуация мога ли да ви попитам за вашия проблем? - person Tanaike   schedule 06.06.2018