gpt4 book ai didi

javascript - 如何在 Nodejs 中使用 xml2js 的函数回调

转载 作者:行者123 更新时间:2023-12-03 10:57:59 29 4
gpt4 key购买 nike

我正在使用 xml2js 在 Nodejs 中解析 XML 文档。

XML 文件是远程托管的,因此我使用 Node.js http 请求来获取 xml 数据,然后使用 xml2js 对其进行解析,如下所示:

var parser = new xml2js.Parser();

function getValue(){
var options = {
hostname: myHost,
path: myPath,
method: 'GET',
headers: {
'Authorization': myAuthString
}
};

var req = http.request(options, function(res) {
res.on('data', function (response) {
parser.parseString(response);
});
});
req.end();
}
parser.on('end', function(result) {
// Output the distribution plans to console
eyes.inspect(result);
// Get the value that I want to use
var returnThis = result['myKey'];
});

上面的代码有效,当http请求接收到“data”事件时,我获取XML数据,然后xml2js解析器解析XML,并在解析的“end”事件上获取数据。

我的问题是,如何使用回调将“returnThis”变量值返回给 getValue 函数?

例如,如果我从 XML 中检索人名,我希望它能够工作:

console.log("The returned name is: " + getValue());

如有任何建议,我们将不胜感激! TIA!

最佳答案

尝试以下操作:

function getValue(callback){
var options = {
hostname: myHost,
path: myPath,
method: 'GET',
headers: {
'Authorization': myAuthString
}
};

var req = http.request(options, function(res) {
var parser = new xml2js.Parser();
parser.on('end', function(result) {
// Output the distribution plans to console
eyes.inspect(result);
callback(null, result['myKey'])
});
res.on('data', function (response) {
parser.parseString(response);
});
});
req.end();
}

要使用您的函数,您需要这样调用您的函数:

getValue(function(err, res){
// res should equal myKey
console.log(res)

})

关于javascript - 如何在 Nodejs 中使用 xml2js 的函数回调,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28196279/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com