Wikipedia の XML をパースする(テンプレート編)

前回からずいぶん期間が開いてしまったけど再始動します。ダウンロードした jawiki-latest-pages-articles.xml をパースします。処理の流れとしては以下。

* ns, id, title, text のタグが始まったらそのタグが始まったことを表すフラグの値を True にし、同じくそのタグが終わったらフラグの値を False にする。
* フラグが True になっている状態で文字列が来たら値を変数に代入する。
* page タグが終わり、 ns の値が 0 だったらファイルに出力する。
* ファイルの内容は1行目をタイトル、空行を挟んで3行目以降は text の内容を出力する。ファイル名に id を使って拡張子は .txt にする。

これで適当な数だけテキストファイルを作って内容を見てみたところ、 Mediawiki の記法でテキストが書かれている。おおまかには Help:書式整形 を見ればわかると思いきや、適当に開いた 岸辺駅 の記事の最初で躓いた。テキストの1行目から以下のような感じになっていた。

{{駅情報
|社色 = #0072bc
|文字色 =
|駅名 = 岸辺駅
...
|備考 = [[日本の鉄道駅#直営駅|直営駅]]<br />[[みどりの窓口]] 有
|備考全幅 = * この間に[[吹田貨物ターミナル駅]]有り(当駅から0.9km先)。
}}

この波括弧を使った書き方が何なのかわからずに調べたところ、テンプレートを意味するということがわかった。 Help:テンプレート早わかり を読んでみると、テンプレートの基本的な使い方としては {{テンプレート名}} と書くことで、 Template:テンプレート名 の内容を差し込むことができるというもの。例えば ジャーマンメタル のページ下部にはジャーマンメタルを含む関連情報のリンク集が表示されているが、テキスト内に {{ヘヴィメタル}} と書かれていると Template:ヘヴィメタル の内容が展開される。
一方で先述の駅情報テンプレートはもっと複雑なことをしていて、値を受け取ってその値をテンプレートにはめ込み、その結果を展開するようになっている。

ということで、各記事の内容の理解に少しだけ近づいたと思う。

この記事が気に入ったらサポートをしてみませんか?