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

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

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

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

JavaScript

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

Monaca

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

Q&A

1回答

2826閲覧

javascriptでXMLをパースするには?

Aru.

総合スコア61

XML

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

JavaScript

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

Monaca

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

0グッド

0クリップ

投稿2017/02/16 07:45

編集2022/01/12 10:55

「クラウドでできるHTML5ハイブリッドアプリ開発」のバーコードスキャナーアプリのテンプレートがあるのですが、商品情報をヤフーショッピングのAPIより取得するのではなく国立国会図書館の書籍の情報にしたいのですがXMLの取得、パースの仕方がわかりません。ご教授お願いします。
当方初心者ですのでアバウトな質問でごめんなさい。
追加情報が必要な場合はご指示お願いいたします。

国会図書館のAPI "http://iss.ndl.go.jp/api/opensearch?isbn="
書籍のISBNの例 "9784798140285"

リクエスト例
"http://iss.ndl.go.jp/api/opensearch?isbn=9784798140285"

とりあえず
titleとauthorの情報を取得したいです。

monaca

1 2"use strict"; 3 4var loadingDialog = null; 5ons.ready(function() { 6 // 読み込み中ダイアログの初期化 7 ons.createAlertDialog('loading.html').then(function(alert) { 8 loadingDialog = alert; 9 }); 10}); 11 12module.factory('Product', function() { 13 var Product = function(params) { 14 this.name = params.name; 15 this.price = params.price; 16 this.desc = params.desc; 17 this.thumbnailUrl = params.thumbnailUrl; 18 this.imageUrl = params.imageUrl; 19 this.url = params.url; 20 }; 21 22 return Product; 23}); 24 25module.controller('AppController', function($scope, Product, $http) { 26 27 $scope.scan = function() { 28 var onSuccess = function(result) { 29 if (!result.cancelled) { 30 /*alert("We got a barcode\n" + 31 "Result: " + result.text + "\n" + 32 "Format: " + result.format + "\n" + 33 "Cancelled: " + result.cancelled);*/ 34 35 loadingDialog.show(); 36 37 $scope.search(result.text, function(product) { 38 $scope.history.unshift(product); 39 $scope.history = $scope.history.slice(0, 10); 40 $scope.saveHistory(); 41 42 $scope.selectProduct(product); 43 setTimeout(function() { 44 loadingDialog.hide(); 45 }, 200); 46 }, function() { 47 loadingDialog.hide(); 48 ons.notification.alert({ 49 title: '商品検索に失敗しました', 50 message: '商品情報を取得できませんでした', 51 buttonLabel: 'OK', 52 animation: 'default', // もしくは'none' 53 }); 54 }); 55 } 56 }; 57 58 var onFailure = function(error) { 59 ons.notification.alert({ 60 message: error, 61 title: 'スキャンに失敗しました', 62 buttonLabel: 'OK', 63 animation: 'default', // もしくは'none' 64 }); 65 }; 66 67 // バーコードをスキャンする 68 plugins.barcodeScanner.scan(onSuccess, onFailure); 69 }; 70 71 $scope.selectProduct = function(product) { 72 $scope.currentProduct = product; 73 navi.pushPage('details.html'); 74 }; 75 76 $scope.search = function(janCode, callback, failCallback) { 77 var apiUrl = 'http://shopping.yahooapis.jp/ShoppingWebService/V1/json/itemSearch'; 78 // 取得したアプリIDを代入 79 // http://www.yahoo-help.jp/app/answers/detail/p/537/a_id/43398/session/L2F2LzEvdGltZS8xNDE4NjEyODk4L3NpZC9WekVGaFc5bQ%3D%3D 80 var appId = 'dj0zaiZpPVdaMnVsQnF4aHVlUCZzPWNvbnN1bWVyc2VjcmV0Jng9YTE-'; 81 $http.get(apiUrl, {params: {appid: appId, jan: janCode}}) 82 .success(function(data, status, headers, config) { 83 try { 84 var product = createProduct(data); 85 callback(product); 86 } catch(e) { 87 failCallback(); 88 } 89 }) 90 .error(function(data, status, headers, config) { 91 failCallback(); 92 }); 93 94 // APIの返り値からProductオブジェクトを生成する 95 function createProduct(response) { 96 var firstResult = response.ResultSet[0].Result[0]; 97 return new Product({ 98 name: firstResult.Name, 99 desc: firstResult.Description, 100 url: firstResult.Url, 101 imageUrl: firstResult.Image.Medium, 102 thumbnailUrl: firstResult.Image.Small, 103 price: firstResult.Price._value 104 }); 105 } 106 }; 107 108 $scope.openWithBrowser = function(url) { 109 // 外部ブラウザで開く 110 window.open(url, '_system'); 111 }; 112 113 $scope.saveHistory = function() { 114 window.localStorage.setItem('history', JSON.stringify($scope.history)); 115 }; 116 117 $scope.clearHistory = function() { 118 $scope.history = []; 119 $scope.saveHistory(); 120 }; 121 122 try { 123 $scope.history = JSON.parse(window.localStorage.getItem('history')); 124 if (!angular.isArray($scope.history)) { 125 $scope.history = []; 126 } 127 } catch (e) { 128 $scope.history = []; 129 } 130 131});

XML

1<rss xmlns:dcterms="http://purl.org/dc/terms/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:dcndl="http://ndl.go.jp/dcndl/terms/" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#" xmlns:dcmitype="http://purl.org/dc/dcmitype/" xmlns:openSearch="http://a9.com/-/spec/opensearchrss/1.0/" version="2.0"> 2<channel> 3<title>9784798140285 - 国立国会図書館サーチ OpenSearch</title> 4<link> 5http://iss.ndl.go.jp/api/opensearch?isbn=9784798140285 6</link> 7<description>Search results for isbn=9784798140285</description> 8<language>ja</language> 9<openSearch:totalResults>1</openSearch:totalResults> 10<openSearch:startIndex>1</openSearch:startIndex> 11<openSearch:itemsPerPage/> 12<item> 13<title> 14クラウドでできるHTML5ハイブリッドアプリ開発 : Cordova/Onsen UIで作るiOS/Android両対応アプリ : Monaca公式ガイドブック 15</title> 16<link> 17http://iss.ndl.go.jp/books/R100000002-I026086786-00 18</link> 19<description> 20<![CDATA[ 21<p>翔泳社,9784798140285</p> <ul><li>タイトル: クラウドでできるHTML5ハイブリッドアプリ開発 : Cordova/Onsen UIで作るiOS/Android両対応アプリ : Monaca公式ガイドブック</li> <li>タイトル(読み): クラウド デ デキル エイチティーエムエル ファイヴ ハイブリッド アプリ カイハツ : コルドヴァ オンセン ユーアイ デ ツクル アイオーエス アンドロイド リョウタイオウ アプリ : モナカ コウシキ ガイドブック</li> <li>責任表示: 永井勝則 著,アシアル株式会社 監修,</li> <li>NDC(9): 007.64</li> </ul> 22]]> 23</description> 24<author>永井勝則 著,アシアル株式会社 監修,</author> 25<category>本</category> 26<guid isPermaLink="true"> 27http://iss.ndl.go.jp/books/R100000002-I026086786-00 28</guid> 29<pubDate>Thu, 05 Mar 2015 09:00:00 +0900</pubDate> 30<dc:title> 31クラウドでできるHTML5ハイブリッドアプリ開発 : Cordova/Onsen UIで作るiOS/Android両対応アプリ : Monaca公式ガイドブック 32</dc:title> 33<dcndl:titleTranscription> 34クラウド デ デキル エイチティーエムエル ファイヴ ハイブリッド アプリ カイハツ : コルドヴァ オンセン ユーアイ デ ツクル アイオーエス アンドロイド リョウタイオウ アプリ : モナカ コウシキ ガイドブック 35</dcndl:titleTranscription> 36<dc:creator>永井勝則 著</dc:creator> 37<dc:creator>アシアル株式会社 監修</dc:creator> 38<dc:publisher>翔泳社</dc:publisher> 39<dcterms:issued xsi:type="dcterms:W3CDTF">2015</dcterms:issued> 40<dc:identifier xsi:type="dcndl:ISBN">9784798140285</dc:identifier> 41<dc:identifier xsi:type="dcndl:JPNO">22533559</dc:identifier> 42<dc:identifier xsi:type="dcndl:TOHANMARCNO">33220623</dc:identifier> 43<dc:subject>プログラミング (コンピュータ)</dc:subject> 44<dc:subject>スマートフォン</dc:subject> 45<dc:subject xsi:type="dcndl:NDLC">M159</dc:subject> 46<dc:subject xsi:type="dcndl:NDC9">007.64</dc:subject> 47<dcterms:description>索引あり</dcterms:description> 48<rdfs:seeAlso rdf:resource="http://id.ndl.go.jp/bib/026086786"/> 49<rdfs:seeAlso rdf:resource="https://www.library.pref.osaka.jp/licsxp-opac/WOpacMsgNewListToTifTilDetailAction.do?tilcod=10021400162374"/> 50<rdfs:seeAlso rdf:resource="http://web.oml.city.osaka.lg.jp/webopac_i_ja/0013420570"/> 51<rdfs:seeAlso rdf:resource="http://opac.library.kochi.jp/winj/opac/switch-detail-iccap.do?bibid=1109743777"/> 52</item> 53</channel> 54</rss>

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

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

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

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

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

guest

回答1

0

DOMParser について調査すると良いと思います。

投稿2017/02/16 08:37

t_obara

総合スコア5488

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

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

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

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問