Node.js 在Lambda函数中使用xml2js解析XML

Node.js 在Lambda函数中使用xml2js解析XML,node.js,aws-lambda,alexa-skills-kit,Node.js,Aws Lambda,Alexa Skills Kit,我正在使用Lambda函数构建一个Alexa技能,该函数通过web服务提供数据。web服务返回XML数据,因此我使用xml2js(受支持) 返回的XML如下所示: <?xml version="1.0" encoding="utf-8"?> <DailySummary> <day dayOfWeek="Sunday" Date="04/22/2018" attribute1="test1" attribute2="test3" /> </DailyS

我正在使用Lambda函数构建一个Alexa技能,该函数通过web服务提供数据。web服务返回XML数据,因此我使用xml2js(受支持)

返回的XML如下所示:

<?xml version="1.0" encoding="utf-8"?>
<DailySummary>
  <day dayOfWeek="Sunday" Date="04/22/2018" attribute1="test1" attribute2="test3" />
</DailySnapshot>

我是node.js的新手,请原谅我的无知,并提前感谢您的帮助。

只需将回调调用放入
parseString
回调中即可

'use strict';
exports.handler = (event, context, callback) => {
 var parseString = require('xml2js').parseString;
 var extractedData = "";
 var xml = '<?xml version="1.0" encoding="utf-8"?><DailySummary><day dayOfWeek="Sunday" Date="04/22/2018" attribute1="test1" attribute2="test3" />   </DailySnapshot>';
 parseString(xml, (err, result) => {
   if(err) throw err;
   extractedData = result['DailySummary']['day'][0].$.type;
   callback(null,extractedData);
 });
};
“严格使用”;
exports.handler=(事件、上下文、回调)=>{
var parseString=require('xml2js')。parseString;
var extractedData=“”;
var xml='';
解析字符串(xml,(错误,结果)=>{
如果(错误)抛出错误;
extractedData=result['DailySummary']['day'][0].$类型;
回调(null,extractedData);
});
};

您唯一能确保结果数据存在的地方是回调,因此您想对其执行的所有操作都必须在回调中完成。

代码执行成功,但响应为空。结果['DailySummary']['day'][0].$不应该返回星期天吗?
'use strict';
exports.handler = (event, context, callback) => {
 var parseString = require('xml2js').parseString;
 var extractedData = "";
 var xml = '<?xml version="1.0" encoding="utf-8"?><DailySummary><day dayOfWeek="Sunday" Date="04/22/2018" attribute1="test1" attribute2="test3" />   </DailySnapshot>';
 parseString(xml, (err, result) => {
   if(err) throw err;
   extractedData = result['DailySummary']['day'][0].$.type;
   callback(null,extractedData);
 });
};
'use strict';
exports.handler = (event, context, callback) => {
 var parseString = require('xml2js').parseString;
 var extractedData = "";
 var xml = '<?xml version="1.0" encoding="utf-8"?><DailySummary><day dayOfWeek="Sunday" Date="04/22/2018" attribute1="test1" attribute2="test3" />   </DailySnapshot>';
 parseString(xml, (err, result) => {
   if(err) throw err;
   extractedData = result['DailySummary']['day'][0].$.type;
   callback(null,extractedData);
 });
};