仕事と晩飯とその他

日記です。

次の大飛躍のための助走なんだ。

木曜日、色々悩んではいたが「近刊検索β」を一旦停止することを決断。その旨をアナウンス。XMLのこともPHPのことも勉強しながら書いたので思い入れはある。実際、アクセスもけっこうある。RSSもそこそこ使われている。何かやれば少しは反応もある。けれど、現状では版元ドットコムそのものを落としてしまう原因になってしまっている。これ以上迷惑はかけられない。

中止に踏み切った最大の理由は「改修の時間が取れない」ということ。それに加えてONIX3への対応もあった。懸案であるスマホへの対応も含めて5/8(ONIX3.0の切り替え日)までに一気に解決することにした。

とは言うものの、事務局長と連絡が取れず、木金は何もできず。

この土日は妻にお願いして家事を最低限に減らし、なるべくこっちの作業に時間を使わせてもらうことにした。

ということで早速土曜日の朝にサイトを休止。外に出てるページを全部同じ内容に書き換えただけ。実際にはRSSやらなんやらはそのまま動かしている。

で、全然手が動かないまま作業開始。いつもの土日の宿題もあるのでさっぱり進まない。

夕方になってようやくまとめて作業。サイトを落としていた本当の原因が判明。なんというか、単に私のプログラムのミスでした(ファイル名の指定が間違っていた)。それが原因でエラーが溜まってサイトが落ちるという、会社のサイトでやっちまった問題と一緒。んー、これならもっと早く直せたな。でも、こういう機会に全部見直したからこそ見つけられたのかも。

サイトが落ちる原因解明と対策はいちおうできた。対策についてはもっと根本的なものが必要なのでそちらは次の課題。先にONIX3.0にとりかかる。が、なんだか全然分からない。XSLTが動かない。どうやっても動かない。と、思ったらルートを指定したら反応が。よく分からないまま試行錯誤を繰り返す。気がつくと深夜2時過ぎ。3時ごろまで頑張ったがまったく動かないので諦めて寝た。

朝7時過ぎには目が覚めてしまったので続き。

ちゃんと動いている現状と全然動かない改善策を見比べる。だいぶしばらく見比べて、もしかするとONIX2系とONIX3系の違いなのかも知れないことにようやく思いが至る。配布されているものよりさらに軽いサンプルファイルを作って色々試行錯誤。全然上手くいかない。このあたりでようやくONIX2系と3系を必死で見比べる。このあたりでルートの属性が違うことには気がついていたが、どうしたらいいのかが分からない。思い切って属性を外したサンプルを作ってみた。

そしたら動いたよ。動くよ。なんだ、これ。というか、ここか。

何が問題なのかがやっとわかった。でもまだそれをどうやって解決すべきなのか、そもそも何を調べたらいいのかもわからない。

ここからしばらく検索に次ぐ検索。分からないことは調べれば出てくるはず。だがしかし、何を調べたらいいのかがいまひとつ明確でないのでなかなか核心にヒットしない。

で、ついに見つけた。いや、これは前にXHTMLの時に見たことがある。名前空間だ。それだ。

改めて仕様も見直す。ONIX3.0からは名前空間がしっかり指定されている。なるほど確かに。

でも、どうすれば?

しょうがないのでEDItEURが提供しているタグコンバーターXSLT)のページなども調べる。XSLT2.0使ってる。PHPじゃ動かないよね。

長い長い道のりのあと、ついに以下のページを発見。
名前空間付きXMLをXSL変換した時の、名前空間の除去」
http://blogs.yahoo.co.jp/flyhard_3/23611483.html

これだよね? なんか、きっと、こういうことだよね?

で、もう少し頑張って最終的にこのページに到達。
XSLT でありがちな失敗を避けるために」
http://www.ibm.com/developerworks/jp/xml/library/x-xsltmistakes/

これだよ! これこれ! これの最初に書いてある「名前空間の処理」の「リスト 2. 名前空間を使用した文書内の情報にアクセスするスタイルシート」が、オレの知りたかったことだよ!

ということで、XSLTを書き直してみたら……、

動いた! ついにXSLTが動いたよ!

ここまでが、朝。

で、それから買い物したり洗い物したりいつもの土日の宿題片付けたりクルマ出して送り迎えしたり鍵失くして探したり晩飯作ったり片づけしたりしてる合間にちょこちょこ作業して10時ぐらいにやっとA社のリストのONIX3.0対応完了。

次はK社のCSV。がんばろう、オレ。

非常に充実感のある週末でした。眠い。