2017-06-10 81 views
0

我正在編寫一個NodeJS腳本以從網站獲取XML並從特定元素獲取值。從網站解析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

代替result['title'],請你用result.rss.channel[0].title

0

錯誤的路徑訪問它。

或者,你只能解析你所需要的

const transform = require('camaro') 
const result = transform(xml, { title: '//channel/title'}) 

console.log(result.title) 
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); 
    }