0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

国立国会図書館サーチAPIとExcel関数を用いた書誌情報の簡易取得ツール

Posted at

はじめに

本ツールは、国立国会図書館サーチのAPI(SRU)とExcel(WEBSERVICEとFILTERXML)を利用して、
Excelに入力した書名から著者や出版者などの書誌情報をセルに表示します。

注意点として、本ツールでは書名に対して最新の書誌情報1件しか取得しないため、
同一の書名の場合は欲しい情報が得られない場合があります。

また、本ツールでは国立国会図書館サーチのAPIを利用するため、
必ず利用条件をご確認ください。( https://iss.ndl.go.jp/information/api/

前提条件

(1) Excelから国立国会図書館のURLへ通信できること
(2) Excelのバージョンが2013以降であること

動作確認PC

(1) Windows 10 Pro Version 1909
(2) Microsoft Office Home and Business 2019
(3) ESET Security 12

簡易取得ツールの作成

(1)Excelの用意

書名を入力する列(①)、WEBSERVICE関数を入力する列(②)、FILTERXML関数を入力する列(取得したいデータ項目数分)(③)を用意します。

(2)WEBSERVICE関数を利用して書誌情報のXMLを取得

②の列に次のWEBSERVICE関数を入力します。
=WEBSERVICE("https://iss.ndl.go.jp/api/sru?operation=searchRetrieve&recordSchema=dcndl&onlyBib=true&recordPacking=xml&maximumRecords=1&startRecord=1&query=title%3d%22"&B4&"%22%20AND%20mediatype%3d%221%22")
・onlyBib=trueで書誌情報のみ取得
・maximumRecords=1で1件のみ取得
・query=titleで書誌のタイトルを検索
・B4はこの場合の書名を入力するセル
詳しくはAPI仕様書をご確認ください。( https://iss.ndl.go.jp/information/api/riyou/

(3)FILTERXML関数を利用してXMLから欲しい項目を抽出

③の列に取得したいデータ項目ごとに次のFILTERXML関数を入力します。(C4はこの場合のXMLを取得したセル)
○著者
=FILTERXML($C4,"/searchRetrieveResponse/records/record/recordData/rdf:RDF/dcndl:BibResource/dc:creator")
○出版年月
=FILTERXML($C4,"/searchRetrieveResponse/records/record/recordData/rdf:RDF/dcndl:BibResource/dcterms:date | dcterms:issued")
○出版者
=FILTERXML($C4,"/searchRetrieveResponse/records/record/recordData/rdf:RDF/dcndl:BibResource/dcterms:publisher/foaf:Agent/foaf:name")
○JP番号/ISBN番号
=FILTERXML($C4,"/searchRetrieveResponse/records/record/recordData/rdf:RDF/dcndl:BibResource/rdfs:seeAlso/@rdf:resource")
○URLリンク
=HYPERLINK(FILTERXML($C4,"/searchRetrieveResponse/records/record/recordData/rdf:RDF/dcndl:BibAdminResource/dcndl:record/@rdf:resource"))

参考

APIに問い合わせるURLやFILTERXMLで用いるXPATHの書き方は、API仕様書にくわえて同志社大学図書館情報学研究室(原田隆史教授)のNDL書誌データ検索シート Ver 1.2.3も参考にしています。( http://www.slis.doshisha.ac.jp/~ushi/ToolNDL/

おわりに

本ツールは高機能ではないですが、書名さえ入力すれば比較的簡単に書誌情報を取得できます。
ただし、国立国会図書館サーチに登録されている書誌情報に依存するため、入力する書名のスペースの有無などで情報が取得できるか変わります。
また、Excelの更新のタイミングなどXMLをすべて再取得する場合があるので、サーバへの大量通信を防ぐため、図書目録等に実装するのではなく、一時的に書誌情報を取得するツールとして利用した方がよいと思います。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?