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

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

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

XMLは仕様の1つで、マークアップ言語群を構築するために使われています。

Node.js

Node.jsとはGoogleのV8 JavaScriptエンジンを使用しているサーバーサイドのイベント駆動型プログラムです。

YouTube API

YouTube APIはYouTubeのビデオコンテンツと機能性をウェブサイト、アプリケーション、デバイスに統合することを可能にします。

JavaScript

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

Q&A

解決済

1回答

1074閲覧

XMLデータの特定の要素の受け取り方について。

MOTOMUR

総合スコア195

XML

XMLは仕様の1つで、マークアップ言語群を構築するために使われています。

Node.js

Node.jsとはGoogleのV8 JavaScriptエンジンを使用しているサーバーサイドのイベント駆動型プログラムです。

YouTube API

YouTube APIはYouTubeのビデオコンテンツと機能性をウェブサイト、アプリケーション、デバイスに統合することを可能にします。

JavaScript

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

0グッド

1クリップ

投稿2017/12/04 13:06

このようなxmlファイルの中から、

XML

1<feed xmlns:yt="http://www.youtube.com/xml/schemas/2015" 2 xmlns="http://www.w3.org/2005/Atom"> 3 <link rel="hub" href="https://pubsubhubbub.appspot.com"/> 4 <link rel="self" href="https://www.youtube.com/xml/feeds/videos.xml?channel_id=CHANNEL_ID"/> 5 <title>YouTube video feed</title> 6 <updated>2015-04-01T19:05:24.552394234+00:00</updated> 7 <entry> 8 <id>yt:video:VIDEO_ID</id> 9 <yt:videoId>VIDEO_ID</yt:videoId> 10 <yt:channelId>CHANNEL_ID</yt:channelId> 11 <title>Video title</title> 12 <link rel="alternate" href="http://www.youtube.com/watch?v=VIDEO_ID"/> 13 <author> 14 <name>Channel title</name> 15 <uri>http://www.youtube.com/channel/CHANNEL_ID</uri> 16 </author> 17 <published>2015-03-06T21:40:57+00:00</published> 18 <updated>2015-03-09T19:05:24.552394234+00:00</updated> 19 </entry> 20</feed>

xml

1<yt:videoId>VIDEO_ID</yt:videoId>

この部分をjsファイルの変数に受け取らせたいのですが、
そのようなxmlの一部を受け取りjsの変数に代入するという操作はどのように書いたらいいのでしょうか。

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

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

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

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

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

guest

回答1

0

ベストアンサー

Node.js上でのXMLパーサーはいくつかあるかと思いますが、
「nodejs xml パース」で検索してみると

https://qiita.com/yagi_/items/e60dd1afdc1cb64936d1
のような記事がヒットしました。このページで「xml2jsがポピュラーらしい」とあったので、それをうのみにしてインストールしてみました。

https://www.npmjs.com/package/xml2js
にある「使い方」の簡単な例をみるとXMLをJSONへ変換するという使い方が伺えます。
そこでサンプルを眺めつつ以下のように取り出してみました。

javascript

1var parseString = require('xml2js').parseString; 2var xml = ` 3<feed xmlns:yt="http://www.youtube.com/xml/schemas/2015" 4 xmlns="http://www.w3.org/2005/Atom"> 5 ...省略... 6</feed> 7`; 8parseString(xml, function (err, result) { 9 if (err) 10 throw new Error(err); 11 console.dir(result, {depth: 4}); // (1) 12 var videoId = result.feed.entry[0]['yt:videoId']; // (2) 13 console.log('yt:videoId = ' + videoId) 14});

最初に(1)を実行してみてどんなJSONが出来ているかを確認した上で(2)を書きました。
質問者さんのアプリケーションにxml2jsが適合するかどうかは分かりませんが、一つの例としてコメントしてみました。

投稿2017/12/04 14:48

編集2017/12/05 03:25
KSwordOfHaste

総合スコア18394

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問