Если я правильно понимаю, проблема в том, что у вас есть несколько <Request>
элементов, но ваш код просматривает только один из них. Это потому, что вы используете getChild()
, который предоставит только первый элемент с указанным именем.
Я не могу полностью проверить, что это работает, потому что вы не предоставили текст XML, но вместо этого вы должны использовать метод getChildren()
, чтобы получить все элементы Request , Затем вы можете выполнить l oop через это.
function getData() {
var options = {
method: 'get',
headers: {
Authorization: 'Bearer ' + ak
}
};
var url = 'https://data.purelyhr.com/daily?ak=' + ak + '&sDate=' + start + '&eDate=' + end + '&TimeOffTypeName';
var response = UrlFetchApp.fetch(url).getContentText();
var document = XmlService.parse(response);
var root = document.getRootElement();
//set variables to data from PurelyHR
var requestElements = root.getChildren('Request'); // Get all <Request> elements
var requestObjects = []; // Request objects for logging / eventual printing
for (var i = 0; i < requestElements.length; i++) {
var request = requestElements[i]; // A single <Request> element
// Add to requestObjects array
requestObjects.push({
TimeOffDate: request.getChild('TimeOffDate').getText(),
TimeOffDayOfWeek: request.getChild('TimeOffDayOfWeek').getText(),
TimeStart: request.getChild('TimeStart').getText(),
TimeEnd: request.getChild('TimeEnd').getText(),
TimeOffHours: request.getChild('TimeOffHours').getText(),
TimeOffTypeName: request.getChild('TimeOffTypeName').getText(),
LoginID: request.getChild('LoginID').getText(),
Firstname: request.getChild('Firstname').getText(),
Lastname: request.getChild('Lastname').getText(),
UserCategory: request.getChild('UserCategory').getText(),
SubmittedDate: request.getChild('SubmittedDate').getText(),
Deducted: request.getChild('Deducted').getText(),
Comment: request.getChild('Comment').getText()
});
}
Logger.log(JSON.stringify(requestObjects));
}
Поскольку я не знаю, как вы печатаете, я создал массив объектов запроса и зарегистрировал это в примере выше. Я надеюсь, что это имело смысл, но, пожалуйста, дайте мне знать, если у вас есть какие-либо вопросы или я полностью не согласен с моим ответом.