現在JavaScript、jQueryを用いてRSSを取得するコードを書いております。
RSSの記事名などは取得できているのですが、日付部分が「dc:date」となっており、ここへのアクセスの仕方が分かりません。
他サイトを参考に以下のようなコード(コメントアウト部分)を追記して試してみましたが、うまく取得できず難儀しております。
dc:date部分から日付を取得できるコードが分かる方、よろしくお願いいたします。
(RSS取得にはjquery.xdomainajax.jsプラグインを用いております)
JavaScript
1function searchRSS(){ 2 3 var rssUrl = 'https://av.watch.impress.co.jp/sublink/av.rdf'; 4 5 $(function(){ 6 $.ajax({ 7 url: rssUrl, 8 type: 'GET', 9 cache: false, 10 dataType: 'xml', 11 timeout: 5000, 12 success: function(res, status) { 13 if (status === 'success') { 14 15 // responseText から取得して、xml 形式に変換する必要があり 16 var xmlText = res["responseText"]; 17 var xml = $.parseXML(xmlText); 18 19 var row = 0; 20 var data = []; 21 var nodeName; 22 23 $(xml).find('item').each(function() { 24 data[row] = {}; 25 $(this).children().each(function() { // 子要素を取得 26 nodeName = $(this)[0].nodeName; // 要素名 27 data[row][nodeName] = {}; // 初期化 28 attributes = $(this)[0].attributes; // 属性を取得 29 30 /* 他サイトを参考に下記試してみましたがうまくいきません 31 data[row][nodeName]['text'] = $(this).text(); 32 if ($(this)[0].tagName == "dc:date") { 33 date = $(this).text(); 34 } 35 */ 36 37 for (var i in attributes) { 38 data[row][nodeName][attributes[i].name] = attributes[i].value; // 属性名 = 値 39 } 40 }); 41 row++; 42 }); 43 44 console.log(data); 45 46 for (i in data) { 47 $('#article').append( 48 '<p>' + data[i].title.text + '</p>' + 49 '<p>' + data[i].date + '</p>'); // ←日付をここに流し込みたい 50 } 51 52 } 53 } 54 }); 55 }); 56}
■追記:コンソールで日付を取得できましたが、変数「data」が読み出せません。
JavaScript
1function searchRSS(){ 2 3 var rssUrl = 'https://av.watch.impress.co.jp/sublink/av.rdf'; 4 5 $(function(){ 6 $.ajax({ 7 url: rssUrl, 8 type: 'GET', 9 cache: false, 10 dataType: 'xml', 11 timeout: 5000, 12 success: function(res, status) { 13 if (status === 'success') { 14 15 // responseText から取得して、xml 形式に変換する必要があり 16 var xmlText = res["responseText"]; 17 var xml = $.parseXML(xmlText); 18 19 var row = 0; 20 var data = []; 21 var nodeName; 22 23 $(xml).find('item').each(function() { 24 data[row] = {}; 25 $(this).children().each(function() { // 子要素を取得 26 nodeName = $(this)[0].nodeName; // 要素名 27 data[row][nodeName] = {}; // 初期化 28 attributes = $(this)[0].attributes; // 属性を取得 29 30 31 /* 32 $(xml).find("item").each(function() { 33 var title = $("title", this).text(); 34 var date = new Date($("dc\:date", this).text()); 35 console.log(date); 36 }); 37 */ 38 39 for (var i in attributes) { 40 data[row][nodeName][attributes[i].name] = attributes[i].value; // 属性名 = 値 41 } 42 }); 43 row++; 44 }); 45 46 console.log(data); 47 48 for (i in data) { 49 $('#article').append( 50 '<p>' + data[i].title.text + '</p>' + 51 '<p>' + date + '</p>'); // ←変数「date」を読み出せない 52 } 53 54 } 55 } 56 }); 57 }); 58}
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/11/04 09:10
2017/11/05 07:38