Javascript SyntaxError:使用Google应用程序脚本输入XML数据时出现意外标识符

Javascript SyntaxError:使用Google应用程序脚本输入XML数据时出现意外标识符,javascript,arrays,xml,google-apps-script,google-sheets,Javascript,Arrays,Xml,Google Apps Script,Google Sheets,因此,我通过API从休假系统获取休假数据,并将其发布到google工作表中,下面是示例响应xml响应 <?xml version='1.0' encoding='ISO-8859-1'?> <DataService> <Request ID="1253" Status="Approved"> <TimeOffDate>2020-02-07</TimeOffDate> <TimeOffDayO

因此,我通过API从休假系统获取休假数据,并将其发布到google工作表中,下面是示例响应xml响应

<?xml version='1.0' encoding='ISO-8859-1'?>
<DataService>
    <Request ID="1253" Status="Approved">
        <TimeOffDate>2020-02-07</TimeOffDate>
        <TimeOffDayOfWeek>Friday</TimeOffDayOfWeek>
        <TimeStart></TimeStart>
        <TimeEnd></TimeEnd>
        <TimeOffHours>8.000</TimeOffHours>
        <TimeOffTypeName>Annual Vacation</TimeOffTypeName>
        <LoginID>testuser</LoginID>
        <Firstname>test</Firstname>
        <Lastname>user</Lastname>
        <UserCategory></UserCategory>
        <SubmittedDate>2019-10-03</SubmittedDate>
        <Deducted>Yes</Deducted>
        <Comment>
            <![CDATA[* time-off request created by administrator]]>
        </Comment>
    </Request>

2020-02-07
星期五
8
年假
测试用户
测验
使用者
2019-10-03
对
下面是我用来获取数据并将其设置为GoogleSheet的代码。我的挑战是,我不确定如何从响应中获取属性IDStatus,并将其推送到requestObjects数组。每次尝试使用request.getAttribute(“ID”)推送属性时,都会出现一个错误
SyntaxError:意外的标识符

       };
  var url = 'https://data.purelyhr.com/xml?ak=' + ak + '&sDate=' + start + '&eDate=' + end + '&TimeOffTypeName'+ '&page=' + pages;
  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
  var Status = request.getAttribute("Status").getValue();

    // Add to requestObjects array
    requestObjects.push({
      Status:request.getAttribute("Status"),
      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()
    });
  }
 var ss = SpreadsheetApp.getActiveSpreadsheet();
 var sheet = ss.getActiveSheet();
 var range = sheet.getRange("A2:J").getValue();
 for (var j = 0; j < requestObjects.length; j++) {
        sheet.getRange(2 + j, 1).setValue(requestObjects[j].Status)
        sheet.getRange(2 + j, 2).setValue(requestObjects[j].Firstname)
        sheet.getRange(2 + j, 3).setValue(requestObjects[j].Lastname)
        sheet.getRange(2 + j, 4).setValue(requestObjects[j].LoginID);
        sheet.getRange(2 + j, 5).setValue(requestObjects[j].TimeOffTypeName);
        sheet.getRange(2 + j, 6).setValue(requestObjects[j].TimeOffDayOfWeek);
        sheet.getRange(2 + j, 7).setValue(requestObjects[j].SubmittedDate);
        sheet.getRange(2 + j, 8).setValue(requestObjects[j].TimeOffHours)
        sheet.getRange(2 + j, 9).setValue(requestObjects[j].TimeOffDate)
  Logger.log(JSON.stringify(requestObjects));
}

}
};
var url='1〕https://data.purelyhr.com/xml?ak=“+ak+”&sDate=“+start+”&eDate=“+end+”&TimeOffTypeName“+”&page=”+pages;
var response=UrlFetchApp.fetch(url.getContentText();
var document=XmlService.parse(响应);
var root=document.getRootElement();
//将变量设置为PurelyHR中的数据
var requestElements=root.getChildren('Request');//获取所有元素
var requestObjects=[];//请求对象进行日志记录/最终打印
对于(var i=0;i
G表上的结果


元素
实例上调用
getAttribute()
函数时,它返回
属性
类的实例。然后需要对该
属性
实例调用
getValue()
。例如:

var id=request.getAttribute(“id”).getValue();

请注意,返回的值的类型始终为
String

,对象的ID和状态字段没有属性名。@只是我无法复制它。正如Pointy所写的,可能是其中一个元素没有ID或Status属性。我可以问一下您期望的结果吗?@Tanaike,我的意图是将状态作为字符串获取,即已批准或已取消,但所获取的是[Status='PROVIDED'],而不是我想要的want@Tanaike,非常感谢。我修改了它,它工作了。顺便说一句,你理解得对。谢谢你看这个。我已经这样做了,正如我编辑的代码中所指出的,我在G表中得到的似乎很奇怪。请看编辑的问题。Thanks@Just不要只是复制粘贴示例代码;尝试理解其背后的逻辑,然后将其应用到您的用例中。查看您的代码,看看您应该在哪里调用
getValue()
方法(提示…您还应该在哪里调用
getAttribute()
函数)。