Node.js 从数据库读取xml
我试图从他们的xml格式获取url,但我做不到。我想获得url部分,我尝试了不同的方法,但似乎最接近成功:Node.js 从数据库读取xml,node.js,Node.js,我试图从他们的xml格式获取url,但我做不到。我想获得url部分,我尝试了不同的方法,但似乎最接近成功: parser.on('error', function (err) { console.log('Parser error', err); }); https.get('https://thecatapi.com/api/images/get?format=xml', function (resp) { resp.on('erro
parser.on('error', function (err) { console.log('Parser error', err); });
https.get('https://thecatapi.com/api/images/get?format=xml', function (resp) {
resp.on('error', function (err) {
console.log('Error while reading', err);
});
resp.pipe(concat(function (buffer) {
var str = buffer.toString();
parser.parseString(str, function (err, result) {
var haha = JSON.parse(JSON.stringify(result));
console.log('Finished parsing:', err, haha.response.data.images.image.url);
// return message.util.send(`Requested by ${message.author}`, { files: [books] });
});
}));
});
但问题是我犯了错误。我明白了:
Finished parsing: null {"response":{"data":[{"images":[{"image":[{"url":["https://thecatapi.com/api/images/get.php?id=aul"],"id":["aul"],"source_url":["http://thecatapi.com/?id=aul"]}]}]}]}}
无法读取未定义的属性“image”
嗯,是的。我不知道怎么做。
如果我仅将此代码与JSON.stringify(result)一起使用,则得到以下结果:
Finished parsing: null {"response":{"data":[{"images":[{"image":[{"url":["https://thecatapi.com/api/images/get.php?id=aul"],"id":["aul"],"source_url":["http://thecatapi.com/?id=aul"]}]}]}]}}
因此,嗯,我不知道如何获得url部分。这对我来说没什么困难。是的,我知道它是json,我可以阅读更简单的json格式,但不是这个。我不知道如何阅读url部分。我从其他网站得到了答案:
const https = require('https');
https.get('https://thecatapi.com/api/images/get?format=xml', (resp) => {
let data = '';
// A chunk of data has been recieved.
resp.on('data', (chunk) => {
data += chunk;
});
// The whole response has been received. Print out the respesult.
resp.on('end', () => {
let url = data.split("\n")[5].trim();
url = url.substr(5, url.length - 11);
console.log(url);
});
}).on("error", (err) => {
console.log("Error: " + err.message);
});