忍者ブログ

昨日でファイナルイグザム(期末試験、みたいなやつっすな)も終わり、晴れて自由の身で「何をしよっかなあ」とちろっと思案したすえ始めたのが、コード書き。

どういうコードを書いていたか、というと、PHP用のXML解析函数。「え、PHPのXML解析はすでに、SAXやらDOMやらSimpleXML(これって本質的には=DOM何ですか? よく分かってない)などで実現されているんだから、それは車輪の再発明じゃないか」って、ごもっとも。でも、そういう出来合のものは、「こういうふうにできたらいいのになあ」ということが、素直なかたちではできなかったりするのですよ。

で、何をしたかったか、というと、タグ名による要素の取得……って、それこそDOMXMLで実装されてるget_elements_by_tagnameじゃないか、と思うかもしれないけど、おれがやりたかったのは、たとえば次のようなXML文書があったとき、異なる上位タグ名に囲まれてる同一タグ名をうまい具合に区別して取り出す、つまり、Dというタグ名の要素がこの例では2つあるけど、この2つを、1つはA/B/D、1つはA/C/Dというような指定で取り出せたら便利であろう、ということだった。

 <A>
<B>
<D>
</D>
</B>
<C>
<D>
</D>
</C>
</A>

メインのロジックはすぐに組めたんだけど、案外やっかいなのが例外処理。つまり、指定したタグ名が存在しない場合の処理が、うまく実装できない。ふつうに考えて「これでばっちりだろ」というものを試しても、はじかれてしまう。

つわけで、いまだ格闘中、なんだけど、ほんと、ネイティヴでこれぐらい用意されてそうなロジックなんだけどなあ。

PR
この記事にコメントする
お名前
メールアドレス
URL
コメント
文法的に問題がある場合は別として、検索したいタグ名が存在しない場合が例外になる、という理由が良くわからないのですが。なければないで、素通りするだけのような気が。
あっ、すみません。内容の詳細が分からないので、安易に考えているだけかも知れません。いや、そうに違いないです。
かがみ 2006/12/16(Sat)17:19:00 編集
おれの取っている方法がそもそもタコいと言うか、絶対に何かが理屈から言って間違っているのでしょうが、タグをオブジェクトとしてそれのメソッド「自分の下位タグのなかから、条件に合致するタグを探し、そのタグを返す」ということを再帰的に繰り返し、そして目的のタグの値を取得するにあたって、指定のタグがじっさいには存在しない場合、先のメソッドはFALSEを返すので次のメソッド呼び出しがFALSE-&gt;methodとなってしまい、ここでエラーになってしまうのです。で、メソッドのあとに、返り値を検分するコードを書き足したのですが、これがなぜだか通らない。

とこういう次第だったのですが、お分かりいただけたでしょうか? あ、ちなみにいまはこの問題は解決済みです。
はやし 2006/12/17(Sun)20:00:00 編集
こんばんは。メソッドポインタというか、何らかのインスタンスを返す場合の例外ですか。で、実は、プログラムに関しての突っ込みは自制しているつもりだったのですが、ついつい余計なことを書いてしまいました。さらに読み直してみると、かなりぶしつけな感もあり、誠に失礼致しました。
やはり突っ込むならば数学ねたということで、今後ともよろしくお願い致します。
かがみ 2006/12/18(Mon)03:12:00 編集
あ、いやいや、全然ぶしつけだとは思いませんし、それに何より、思ったことは言えばいい、と思いますので、数学ネタであれ、プログラムネタであれ、突っ込んでもらえれば、と思います。それにしても、なぜインスタンスが存在しない場合のFALSEが拿捕できなかったのか、今でも謎であります。
はやし 2006/12/18(Mon)19:04:00 編集
この記事へのトラックバック
この記事にトラックバックする:
カレンダー
07 2017/08 09
S M T W T F S
1 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31
最新コメント
[08/22 フェンディ コピー]
[08/21 Latia]
[08/21 www.linux.org]
[08/19 Acompanhantes de luxo no Rio de Janeiro]
[08/18 writing services company reviews]
[08/17 www.linux.co.uk]
[08/17 人気ブランドBagssjp,楽天市場 海外ブランド 腕時計bagssjp]
[08/17 http://www.flyblind.com]
[08/16 名無権兵衛]
[08/16 mezaninos em curitiba]
最新トラックバック
メール
ブログ作成者(はやし)に直接訴えたいことがある、という場合は、下のアドレスにメールをどうぞ。

thayashi#ucalgary.ca
(#を@に置換してください)

ブログ内検索
Google
WWW を検索 このブログ内を検索

はやしのブログ内で紹介された
 書籍の検索はこちら
 音盤の検索はこちら
ランダムおすすめ
(忍者ブログに引越してから、うまくうごかなくなってしまいました。いつか、直します)
Randombook
このブログで紹介したことのある本をランダム表示。
Randomusic
このブログで紹介したことのある音をランダム表示。
自分がらみのリンク
はやしのブログ書籍一覧
このブログで言及された書籍の一覧。
はやしのブログ音盤一覧
このブログで言及された音盤の一覧。
最近のおすすめ本
最近のおすすめ音

Copyright © [ はやしのブログ ]
No right reserved except those which belong to someone else.
Special Template : 忍者ブログ de テンプレート and ブログアクセスアップ
Special Thanks : 忍者ブログ
Commercial message : [PR]