0

我有一个小问题。我用 xml2js 解析器解析了一条消息

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; 发件人=用户名;

我怎样才能得到这些数据?我不太确定,谢谢你的帮助。

4

2 回答 2

1

使用parser.parseString()后,您将获得一个普通的 Javascript 对象。怎么样:

var type = result.message.type[0];
var sender = result.message.sender[0];

这是一些关于 Javascript 变量类型的文档。

于 2013-11-08T17:04:14.763 回答
0

看起来您不太了解“异步”和“同步”的概念。console.log(result);在异步回调中显示结果,该回调 return value;. 所以value没有初始化并且函数返回undefined

如果内部不执行异步调用,此代码可能会起作用,但这是一种例外情况。parseString大多数带有回调的代码都是异步工作的。所以你也需要以这种方式组织你的代码。

于 2013-11-08T17:10:51.850 回答