我遇到了一个小问题。我使用xml2js Parser
解析了一条消息parser.parseString(message.toString(), function (err,result) {
//Extract the value from the data element
value = result;
console.log(result);
});
return value;
这会正确返回一个XML对象,如下所示:
{message: { type: ['authMessage'], sender: ['username']} }
但知道我想要数据,意思是type = authMessage; sender = username;
我如何获得该数据?我不太确定,谢谢你的帮助。
答案 0 :(得分:1)
使用parser.parseString()
后,您将获得一个简单的Javascript对象。怎么样:
var type = result.message.type[0];
var sender = result.message.sender[0];
答案 1 :(得分:0)
看起来你并不清楚“异步”和“同步”概念。 console.log(result);
在异步回调中显示结果,该回调在 return value;
之后执行。因此value
未初始化,函数返回undefined
。
如果parseString
内部不执行异步调用,则此代码可能有效,但这是一种特殊情况。大多数带回调的代码都是异步工作的。因此,您也需要以这种方式组织代码。