2017-06-10 9 views
0

Webサイトから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 
}); 

問題は何ですか?

おかげ

答えて

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); 
    } 
を使用して作業しました
関連する問題