我正在编写一个NodeJS脚本来从网站获取XML并从特定元素中获取值。
但是,在运行它时会说“未定义”。
代码:
var http = require('http');
var xml2js = require('xml2js');
var parseString = require('xml2js').parseString;
var req = http.get("http://feeds.nos.nl/nosnieuwsvideo?format=xml", function(res) {
// save the data
var xml = '';
res.on('data', function(chunk) {
xml += chunk;
console.log(xml);
});
res.on('end', function() {
parseString(xml, function(err, result) {
console.log(result['title']);
});
});
});
req.on('error', function(err) {
// debug error
});
问题是什么?
由于
答案 0 :(得分:0)
而不是result['title']
,请尝试result.rss.channel[0].title
答案 1 :(得分:0)
您使用了错误的路径来访问它。
或者,你只能解析你需要的东西
const transform = require('camaro')
const result = transform(xml, { title: '//channel/title'})
console.log(result.title)
答案 2 :(得分:0)
感谢大家的回答。
我使用
开始工作for (var i = 0; i < objects2.length; i++) {
var title = Object.values(objects2[i].title).toString();
title.replace("['", "").replace("']", "");
var description = Object.values(objects2[i].description).toString();
description.replace("['", "").replace("']", "");
var pubtime = Object.values(objects2[i].pubDate).toString();
pubtime.replace("['", "").replace("']", "");
var link = Object.values(objects2[i].link).toString();
link.replace("['", "").replace("']", "");
console.log("\n");
console.log(pubtime);
console.log(link);
console.log(title);
console.log(description);
}