|
Perl 用の XML::TreePP モジュール と JavaScript 用の XML.ObjTree クラス は、 ほぼ同じ目的で作成したライブラリで、連想配列・配列などを含む多次元データと XML の 相互変換を行うためのライブラリです。XML 形式を媒介とするデータのシリアライザ。 複雑な DOM 操作などが不要で、手軽に XML を操作できるのがウリです。 ECMAScript for XML (E4X) が普及すれば、root.node.@attr のように 分かりやすい記述が書けるようになるけど、IE7 でも対応してないしまだ先でしょう。 今の JavaScript でも E4X 風味に、root.node["@attr"] のようには書けるから、 XML.ObjTree に attr_prefix オプションを追加して属性値にアクセスするための プリフィックスとして @ も使用できるようにしました。 var xotree = new XML.ObjTree();デフォルトのプリフィックスは - なので、root.node["-attr"] となっていました。 root.node["@attr"] となって何が変わるわけじゃないけど、E4X 互換な気分。 (実際には、E4X の方が配列アクセスなどがシームレスな機能があって、はるかに快適) 兄貴分の XML::TreePP にも attr_prefix オプションを追加しておきました。 my $tpp = XML::TreePP->new(); 両者の祖先にあたる、JKL.ParseXML はパース処理のみだったので、 属性プリフィックスは必要なかったのだけど、XML::TreePP はパースだけでなく XML ファイルの生成も含めた往復変換ができるように、属性プリフィックスを導入した。 XML::TreePP で属性プリフィックスに「-」を採用したのは、 「@」は Perl では "〜" 中に書けない(いちいち¥エスケープしたくない)のと、 先頭ハイフンならハッシュ定義中に書きやすい('〜'や"〜"で囲わなくて済む)し 昔ながらの UNIX コマンドラインのオプションも「-」だからというのが理由。 弟分の XML.ObjTree も互換動作のために、そのまま「-」になってました。 Perl でも JavaScript でも同じように書けたほうが精神衛生上ありがたいので。 両方使ってると、思わず JavaScript でも変数に $ を付けたりしちゃうけど。 //// (PS)プリフィックス? プレフィックス? どっちだ? |
| << 前記事(2006/05/01) | トップへ | 後記事(2006/05/01)>> |
| タイトル (本文) | ブログ名/日時 |
|---|
| 内 容 | ニックネーム/日時 |
|---|
| << 前記事(2006/05/01) | トップへ | 後記事(2006/05/01)>> |