質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.49%
Cordova

Cordovaは様々なデバイスで使うことができるオープンソースなモバイル用開発プラットフォームです。開発者に各デバイスの元のプラットフォームで開発する必要をなくし、HTML・JavaScript・CSSなどの一般的なウェブのテクノロジーを使ってすべてのデバイスで展開することができるモバイルのアプリケーションを生成することを可能にします。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

Monaca

「Monaca」はiOS、Android、Windows向けのアプリ開発に対応した、Cordovaベースのモバイルアプリ開発プラットフォームです。HTML5、JavaScriptといったWeb標準技術を用いてモバイルアプリ開発を行うことができます。

Q&A

1回答

3415閲覧

jQueryでRSSの日付(dc:date)を取得したい

agepan

総合スコア66

Cordova

Cordovaは様々なデバイスで使うことができるオープンソースなモバイル用開発プラットフォームです。開発者に各デバイスの元のプラットフォームで開発する必要をなくし、HTML・JavaScript・CSSなどの一般的なウェブのテクノロジーを使ってすべてのデバイスで展開することができるモバイルのアプリケーションを生成することを可能にします。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

Monaca

「Monaca」はiOS、Android、Windows向けのアプリ開発に対応した、Cordovaベースのモバイルアプリ開発プラットフォームです。HTML5、JavaScriptといったWeb標準技術を用いてモバイルアプリ開発を行うことができます。

0グッド

0クリップ

投稿2017/11/04 08:32

編集2017/11/04 09:08

現在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}

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

このあたりは試されましたか? また、$.parseXML(xmlText);する前にdc:dateを置換してしまうのも手だと思います。

【jqueryでxmlのdc:dateを取得するには - tail -f /var/log/こうちかずお.log】
http://kohchi.hatenablog.com/entry/20120724/1343120402

jqueryのajaxにて、dc:date要素を取得する場合はコロンの前にバックスラッシュx2を指定する必要あるようだ。

投稿2017/11/04 08:48

kei344

総合スコア69398

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

agepan

2017/11/04 09:10

ご回答ありがとうございます。 ご掲示頂いたサイトの内容をコードに反映させてみますと、コンソールで日付を取得できていることが確認できました。あとはHTMLに流し込むだけなのですが、ここで変数「date」を読み出せないようで、エラーになってしまいます。問題点分かりますでしょうか?(現在のコードを追記いたしました)
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.49%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問