我正在尝试导出一个将 xml 解析为 json 对象的函数。
export const parse = (body) => {
const parser = new xml2js.Parser({explicitArray: false, trim: true});
parser.parseString(body, (err, result) => {
if (err) return err;
parser.parseString(result['soapenv:Envelope']['soapenv:Body']['ns1:searchResponse'].searchReturn._, (err, result) => {
if (err) return err;
console.log(result);
return result;
});
});
}
我遇到的问题是该函数返回未定义,但是,它设法向 console.log 记录正确的结果。
最佳答案
由于您的函数是异步的,您可以将其转换为 promise。
export const parse = (body) => {
return new Promise((resolve, reject) => {
const parser = new xml2js.Parser({explicitArray: false, trim: true});
parser.parseString(body, (err, result) => {
if (err) return reject(err);
parser.parseString(result['soapenv:Envelope']['soapenv:Body']['ns1:searchResponse'].searchReturn._, (err, result) => {
if (err) return reject(err);
resolve(result);
});
});
}
})
你可以这样使用它..
const result = await parse(<somebody>)
关于Javascript 如何将 xml2js 放入函数中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49180116/