【发布时间】:2021-06-23 02:29:34
【问题描述】:
我正在开发一个 Outlook Web 加载项,我使用 GetItem 从 Exchange Web 服务 SOAP 响应中获取 ChangeKey,这是我编写进一步请求时需要的值。问题是到目前为止我还没有得到那个。我关注Find xml attribute values with javascript 没有成功。 我不确定我是否能够使用其他外部库,因为它托管在 office365 环境中。
这就是我一直在尝试做的事情
var responseXML =
'<?xml version="1.0" encoding="utf-8"?>'+
' <s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">'+
' <s:Header>'+
' <h:ServerVersionInfo MajorVersion="15" MinorVersion="20" MajorBuildNumber="3955" MinorBuildNumber="27" Version="V2018_01_08" xmlns:h="http://schemas.microsoft.com/exchange/services/2006/types" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/>'+
' </s:Header>'+
' <s:Body>'+
' <m:GetItemResponse xmlns:m="http://schemas.microsoft.com/exchange/services/2006/messages" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:t="http://schemas.microsoft.com/exchange/services/2006/types">'+
' <m:ResponseMessages>'+
' <m:GetItemResponseMessage ResponseClass="Success">'+
' <m:ResponseCode>NoError</m:ResponseCode>'+
' <m:Items>'+
' <t:Message>'+
' <t:ItemId Id="AAMkADZh" ChangeKey="CQABA"/>'+
' <t:Subject>the email subject</t:Subject>'+
' </t:Message>'+
' </m:Items>'+
' </m:GetItemResponseMessage>'+
' </m:ResponseMessages>'+
' </m:GetItemResponse>'+
' </s:Body>'+
'</s:Envelope>';
xmlDoc = $.parseXML(responseXML),
$xml = $(xmlDoc),
$itemId = $xml.find("ItemId");
$itemId.each(function(index, element) {
if(element.attributes["ChangeKey"]) {
console.log("ChangeKey :" + element.attributes["ChangeKey"].value);
}
});
但是$itemId 不返回集合,虽然我只期待一个项目,但我认为准备好迭代并没有什么坏处。
【问题讨论】:
标签: javascript xml-parsing exchangewebservices