論文→SIST02に挑戦(1)

CiNiiで検索した論文がSIST02形式になって返ってきたらレポートの参照文献書くときに便利なのになー……と思ったのでRubyで書いてみることにしました.「思い立ったが吉日」を体現している.せっかくなので作業メモを残してみることにしました.作業メモは残すけど誰か僕より有能な人がいたらちゃっちゃと作って欲しいとか思ったり思わなかったり.
  • RubyでXMLを扱うためにはREXMLとかいうライブラリを使えばいいらしい
  • と思ったけどメモリ食いまくったりRDFが上手く読めなかったりとかで意外とダメらしい
  • libxml-rubyとか言うのを使えばいいらしい→gemでさっさと落とす
  • rubyでCinii詳細表示画面のrdfをパースする(libxmlで)のソースコードを見てみたら,どうやら○○:titleみたいなやつの○○はハッシュでURLに置き換えなきゃいけないらしい→真似して実装してみた(何のことだかよく分かってない)
で,とりあえずXML::Document.File('ファイル名')でXMLファイルを読み込めるらしい,ということが分かったので

require 'rubygems'
require 'xml/libxml'

ns = {
  'rdf' => 'http://www.w3.org/1999/02/22-rdf-syntax-ns#',
  'rdfs' => 'http://www.w3.org/2000/01/rdf-schema#',
  'dcterms' => 'http://purl.org/dc/terms/',
  'foaf' => 'http://xmlns.com/foaf/0.1/',
  'prism' => 'http://prismstandard.org/namespaces/basic/2.0/',
  'con' => 'http://www.w3.org/2000/10/swap/pim/contact#',
  'cinii' => 'http://ci.nii.ac.jp/ns/1.0/'
}

doc = XML::Document.file('適当にDLしたRDFのNAID.rdf')

doc.root.find('/rdf:RDF/rdf:Description/dc:creator').each do |creator|
  puts creator.content
end

って感じにしてみたら無事論文の著者の羅列が出てきました.さっき見たサイトのコードではちゃんと日本語の著者のみ表示するようになってたのでそこら辺もパクって参考にしなきゃなー.

コメント

このブログの人気の投稿

慶大プレ小論文

改名