Kawa.netブログ(川崎有亮)

アクセスカウンタ

help リーダーに追加 RSS [XML] XML::TreePPとXML.ObjTreeの属性プリフィックス「@」対応

<<   作成日時 : 2006/05/01 02:21   >>

トラックバック 0 / コメント 0

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();
xotree.attr_prefix = '@';
デフォルトのプリフィックスは - なので、root.node["-attr"] となっていました。
root.node["@attr"] となって何が変わるわけじゃないけど、E4X 互換な気分。
(実際には、E4X の方が配列アクセスなどがシームレスな機能があって、はるかに快適)

兄貴分の XML::TreePP にも attr_prefix オプションを追加しておきました。
my $tpp = XML::TreePP->new();
$tpp->set( attr_prefix => '@' );

両者の祖先にあたる、JKL.ParseXML はパース処理のみだったので、
属性プリフィックスは必要なかったのだけど、XML::TreePP はパースだけでなく
XML ファイルの生成も含めた往復変換ができるように、属性プリフィックスを導入した。

XML::TreePP で属性プリフィックスに「-」を採用したのは、
「@」は Perl では "〜" 中に書けない(いちいち¥エスケープしたくない)のと、
先頭ハイフンならハッシュ定義中に書きやすい('〜'や"〜"で囲わなくて済む)し
昔ながらの UNIX コマンドラインのオプションも「-」だからというのが理由。

弟分の XML.ObjTree も互換動作のために、そのまま「-」になってました。
Perl でも JavaScript でも同じように書けたほうが精神衛生上ありがたいので。
両方使ってると、思わず JavaScript でも変数に $ を付けたりしちゃうけど。

////

(PS)プリフィックス? プレフィックス? どっちだ?

設定テーマ

関連テーマ 一覧

月別リンク

トラックバック(0件)

タイトル (本文) ブログ名/日時

トラックバック用URL help


自分のブログにトラックバック記事作成(会員用) help

タイトル
本 文

コメント(0件)

内 容 ニックネーム/日時

コメントする help

ニックネーム
本 文

EDGE Now!