仕事と晩飯とその他

日記です。

案ずるより産むが易し、なのか

色々考えた結果、社で使ってるWindows7にもう一度XAMPPを導入。

で、XMLReaderでXMLをストリームベースでパース、なんだかあっけなく出来た。そして、何度読んでもわからなかったIBMのページの「リスト 9. SimpleXML と DOM、XMLReader を使って、大きな XML 文書を構文解析する」が、やっとほぼわかった。

PHP 開発者のための XML: 第 2 回 高度な XML 構文解析方法」
http://www.ibm.com/developerworks/jp/xml/library/x-xmlphp2.html

「ほぼ」などと言い訳してしまう理由は本当に「ほぼ」だから。まだ少し、すみません本当はけっこう、わかってないところがある。

いや、それよりも何十回読んでもわけがわからなかった内容がなんで今回ある程度わかるようになったか、その理由がわかった。python始めようと思ってオブジェクト指向の話をまた何度も読んでいた。オブジェクト指向については20年ぐらい前に基本的な概念は理解できたと思うんだけど、どこでどう使えばいいものなのかいまだによく分かっていない。なので、また「クラスとは」「インスタンスとは」とかから読み直すわけです。で、ちょっとずつ思い出すんだけど、相変わらず何に使えばいいのか分からない。

この前作った出勤簿プログラムで考えてみると、多分、「出勤日クラス」みたいなのを作って「出勤時刻」「退勤時刻」プロパティと「直行」「直帰」メソッドを持たせて云々みたいなことなんだろうと思う。実際に自分で作ったのは「出勤」「退勤」「直行」「直帰」「メモ」をフラグにして、「日付」「社員ID」「登録時刻」「更新時刻」「フラグ」「メモ(内容)」をレコードにした。出勤や退勤の時刻は登録時刻か更新時刻を使うことにしたので随分とカラムが少なくて済んだ。けど、出勤日クラスの○月×日インスタンスを作ってどうこうっていうのでいけばオブジェクト指向なんだろうな。

で、pythonオブジェクト指向とかPHPオブジェクト指向とか見てXMLのパースでDOMがどうこうを見ているうちに、ああ、そういえば、DOMって「Document Object Model」だったよなと。で、それってXMLのルートノードとか親ノード子ノード、siblingがどうこうとかそういうことだよねとか考えていたら、なんだか急にXMLの構造をどかんと丸ごと使えるようにしちゃってるのねっていうか、simpleXMLってそういうことなんだよねと。

何年か前にも「やっと気がついた!」と思ったことをまた再発見してるよ、オレ。身につかねえなあ。

けど、今回は本当に身についたような気がする。自信はないけど。

この期に及んでWikipediaを見たら「Document Object Model (DOM) は HTML文書やXML文書をアプリケーションから利用するためのAPI」とか、「XMLデータをツリー構造として扱う事ができる」とか書いてある。

違うな、これも何度も読んでるな。何度読んでも意味がわからなかった。なんでだろう。ようやくわかった、気がする。

読書百遍意自ずから通ず、違うか。

今度はもう忘れないかなあ。どうだろうなあ。ホント、知識が定着しないなあ。

知識が定着しない理由はなんとなくわかってる。断片的なんだよね、覚え方が。きちんと体系を学ぼうって気がない。だから豆知識になっちゃって知識と知識がつながってない。仕事もそんな感じだな、オレ。

そろそろなんとかしないとな。