Skip to content

 

PORTAのPHPサンプル数種。

先日の記事(PORTAのAPI使ってみた、けど。)のあと、いろいろ試してようやくまともに書誌情報が取得できたので、報告します。

解説すると長くなるので、とりあえずPHPのサンプルを各種。プログラマー各氏にはこのほうが話が早いかも。

FC2ブログの仕様上、拡張子がphpだとアップ出来ないのでtxtにしてます。

PORTAへのリクエストでは、書誌情報のスキーマがdcかdcndl_portaか選べ、そのパッキング方法をxmlとstringから選べる。はじめどれがいいかわかんなかったので、都合この組み合わせ4つのサンプルを用意した。

また、先日の記事の追記でも書いたけど、PHPのSimpleXMLだと名前空間の扱いがめんどくさいので、名前空間付きの要素名を適当に置換するバージョンも2つのスキーマ向けに作った。

結局、最後のやつが一番使いやすい気がします。

あと、おまけ。

にしても、dc:identifierの種類が属性を参照しないとわからんとか、全角英数字を使ってるとか、複数の著者名と役割表示が1つの文字列にまとめられてるとか、Amazonに比べると扱いにくいこと扱いにくいこと。既存の目録規則やDublin Coreにとらわれずに、もっとまともな構造のデータで出力してくれると嬉しいんだけどなあ。

Posted in 未分類.

Tagged with , , , .


5 Responses

Stay in touch with the conversation, subscribe to the RSS feed for comments on this post.

  1. Cloud says

    ラボ長さま、初めまして。サンプルありがとうございます!
    おかげで「SOAPって何?」な自分でも無事XMLを
    取得できました。
    ただ、「$req = array(‘version’…);」に’’sortKeys’ => ‘title,,0′
    と追加してソートをしようとしているんですが
    どうやっても出力順が変わりません。
    さくさくとソートができればぐっと実用的になると思うんですが・・
    ラボ長さまはソートできていますか?

  2. ラボ長 says

    Cloudさん、はじめまして。
    たしかにsortKeysを指定してもソートできないですね。私もいろいろ試してみましたが、まだできてません。
    ちょっと今後も調べてみます。

  3. Cloud says

    お返事ありがとうございます。
    私だけではないと分かったので、思い切って
    PORTAのページから直接問い合わせてみました。
    即返事が来て正常に動作しないことを確認したので
    対応していただけるとのことでした。
    しばらく待てばいいようですね。

  4. Masa says

    こんにちわ、はじめまして。貴重な情報、ありがとうございます。

    「スキーマ:dcndl_porta パッキング:xml 名前空間付きの要素名を置換」を基に
    ISBNコードから書籍情報を取得してDBに入れるスクリプトを作成しました。
    問題なく動作はするのですがPORTAからデータの取得まで5秒〜30秒ほどかかってしまいます。

    サーバーの応答速度の問題だとは思いますが、リクエストを変更するなどの方法で
    改善する方法はあるのでしょうか。

Continuing the Discussion

  1. 7月のPORTAリニューアルについて – 情報と音楽 linked to this post on 2009年10月27日

    [...] SRWのリクエストをREST(URLによるリクエスト)にしたSRUに対応した。SRWはSOAPを使うため、何かとめんどくさいが、SRUはURLに検索式を埋め込むので非常に楽。また検索式もCQL1.2に対応することで、検索クエリ中に並べ替えを指定することができるようになった。前の記事にいただいたコメントにもあるようにSRW/CQL1.1のsortKeysによる並べ替えは現時点でも実装されていないが、このCQL1.2による並べ替えはちゃんと実装されている。 title = library でNDL蔵書目録を検索(タイトル昇順) http://api.porta.ndl.go.jp/servicedp/SRUDp?operation=searchRetrive&maximumRecords=10&recordSchema=dcndl_porta&query=title+%3D+library+AND+dpid+%3D+zomoku+AND+sortBy+%3D%22title%2Fsort.ascending%22 [...]



Some HTML is OK

or, reply to this post via trackback.