从站点解析XML并从元素中获取值

时间:2017-06-10 17:55:13

标签: node.js xml

我正在编写一个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
});

问题是什么?

由于

3 个答案:

答案 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);
    }