plasmasphere.net -プラズマスフィア ドットネット-
Diary
ExtJS XmlReaderのcdata-sectionエスケープ対応
2011/02/06(Sun) 00:02
ExtJSのExt.data.XmlReaderですが、cdata-section の複数エスケープに対応していないみたいですね。
cdata-section のエスケープは基本以下の通りですが…
<HOGE><![CDATA[fuga]]></HOGE>
fugaをfuga]]>と入力すると、]]>をエスケープしないといけません。
<HOGE><![CDATA[fuga]]]]><![CDATA[>]]></HOGE>
※ cdata内で>とかを>とエスケープするってのは大間違いです。
ExtJSのXmlReaderですが、値の取得に Ext.DomQuery.selectValue を使っています。
selectValue が cdata-section のエスケープに対応してないですね。
selectValue : function(path, root, defaultValue){ path = path.replace(trimRe, ""); if(!valueCache[path]){ valueCache[path] = Ext.DomQuery.compile(path, "select"); } var n = valueCache[path](root), v; n = n[0] ? n[0] : n; if (typeof n.normalize == 'function') n.normalize(); v = (n && n.firstChild ? n.firstChild.nodeValue : null); return ((v === null||v === undefined||v==='') ? defaultValue : v); },
一応 n.normalize で正規化されてると思いきや、cdata-section はnormalizeしても正規処理されないようで。
cdata-sectionがエスケープされていると、エスケープされてる数だけ childNodes に文字列が分割されます。そういうDOM仕様です。
なので、nodeValue だとこの場合取れる値は「hoge]]」です。
本来ほしい値は「hoge]]>」ですので、nodeValue ではなく contentText だと正解になるんですが、残念ながらIE系は DOM のバージョンが低いので contentText には対応していません。
なんにしろXmlReaderを書き換えてあげないといけません。
Ext.override(Ext.data.XmlReader,{ createAccessor : function(){ var q = Ext.DomQuery; return function(key) { if (Ext.isFunction(key)) { return key; } switch(key) { case this.meta.totalProperty: return function(root, def){ return q.selectNumber(key, root, def); }; break; case this.meta.successProperty: return function(root, def) { var sv = q.selectValue(key, root, true); var success = sv !== false && sv !== 'false'; return success; }; break; default: return function(root, def) { var node = q.select(key, root, def), v = ''; node = node[0] ? node[0] : node; if (typeof node.normalize == 'function') node.normalize(); if(node.childNodes.length>0) { for(var i=0;i<node.childNodes[i];i++) { v += (node.childNodes[i] ? node.childNodes[i].nodeValue : ''); } } return v; }; break; } }; }() });
Ext.DomQuery.selectValue を override した方が楽なのかもしれませんが。
なんにしろこれで cdata-section のエスケープに対応できたと思います。
猫の糖尿病
2011/01/23(Sun) 00:01
年末帰って抱き上げてみると骨と皮。
体重を量ってみると2.4kg。
いくらなんでもヤバイだろってんで、両親を煽って病院に連れて行ってもらいました。
私が実家にいるときに病院開いてれば私が連れて行ってたと思いますけど。
デブで糖尿病じゃないから、多分すい臓がもう機能しなくなっちゃったんでしょうね。
通常血糖値120くらいのところ、500を超えていたので、これはもう糖尿病だろうと言うことらしいです。
それから色々あったんですが、結局インシュリン注射をすることになりました。
猫の糖尿病は、人間や犬のように合併症が発生しないらしいので、インシュリンで糖を処理できれば普通に元気にはなると思います。
ただ、インシュリンの適量が分からないうちは低血糖症に気をつけないといかんらしく。
数値が70を下まわると命にかかわらるらしいです。
こうなると薄めた砂糖水を口に塗ってやるとか、なんかもう色々大変そうです。
や、低血糖にさせないのが基本ですけどね。
まあ、元気になってくれれば、と世話をする両親も言ってますが…。
年取ると大変なのは生物であればみな同じだということですな。
CSSハック
2011/01/20(Thu) 00:01
今更ですけどIE系のCSSのハックについてまとめておこうと思います。
最近使うことが多いので。
IE6
.hoge {
_color: #000;
}
IE7
*:first-child+html .hoge {
color: #000;
}
IE6/IE7
.hoge {
/color: #000;
}
IE8
html>/**/body .hoge {
color /*\**/: #000\9;
}
個人サイトだとIEの対応なんざほぼ考えなくていいと思うんですが、相手が企業だとそうもいきません。
管理用のWebシステムが増えてきた昨今ですが、未だに社内標準システムはIE6でActiveXバリバリ☆ってとこが多いんじゃないでしょう得に大企業。
もしも大企業のゲーマー部長さんとかがここ見る機会があったら是非とも会議で申し出ていただきたい。
IEはセキュリティに不安があるからFirefoxかOperaかChromeに変更しましょうって。
若干個人的愚痴もはさみましたが、IE用のCSSハックでした。
まあ、ハック使わなくてもIEの標準準拠モードと互換モードに対する知識があれば結構なんとかなるんですけどね、
この辺の知識全部把握してる人なんて相当なブラウザおたくでしょうから、まず普通のIT戦士じゃ無理だよね。
もっと詳しく知りたい場合はこちらのページがおすすめ。
http://www.webbibo.com/blog/htmlcss/selector.html
あけまして
2011/01/08(Sat) 00:01
おめでとうございます。
あけてから一週間過ぎてますがよろしくお願いいたします。
AtomマザーでPC組み立て
2010/12/28(Tue) 00:12
ASUSのAtomマザーボードでPCを作ってみました。
ケースはいつものAOpenです。
前作ったときはAOpenのベアボーンだったんでマザーは選べなかったんですが、今回はS110っていうケースだけの代物。
マザーはAT5NM10-Iにしました、それなりで安いから。
OSインストールしてから気づいたけど、NM10ってLinux用のドライバろくなのが無いので、AT5IONT-Iにした方がいいかもしれません。
値段倍違いますけど。
デスクトップ用だったんですが、とりあえずCentOS5.5入れてみました。
初心者の使用に耐えられないなと思って、そっこーUbuntu10.10に入れ替えました。
Ubuntu…っていうかDebian系あんまり使う機会無かったんですけど、パッケージ管理も軽いし、依存関係の説明とかも公式サイトで細かく説明あるし、これが噂に聞くUbuntuかっていう感じで、ええ良いですねUbuntu。
IMサービスがプリインストールされてるのもよかったです、手間が省けました。
擬似4コアのCPUですが、10年近く前のパソコンよりは全然マシなので、ほぼネットと音楽CDの取り込みしかやらん人にはこれで充分だなと。
ネットトップ、モニタ込みで5万円でお釣りがきたら全く問題ないです。
ああでも、リッピングめちゃんこ遅かったですけど…そこはしょうがないっていう。
使ったパーツ
メモリ http://amzn.to/fz9seo
HDD http://amzn.to/fRzzwL
マウス http://amzn.to/dKvBXN
CD http://amzn.to/dKNgBu
M/B http://amzn.to/f7GIZu
ケース http://amzn.to/ibm2C1
モニタ http://amzn.to/hVH8j9
キーボード http://amzn.to/hamygK
嵐山花灯路
2010/12/15(Wed) 00:12
嵐山花灯路に行ってきました。
http://www.hanatouro.jp/arashiyama/index.html
感想は写真見れば分かるよ。
綺麗っちゃあ綺麗だけど無理していく必要もないレベル。
紅葉と雪景色の中間だからしょうがないと言えばそれまでだけど。
一年以上ぶりの京都ネタだけど、不精じゃなくて本当にどこにも行ってなかったから困る。
GT5
2010/12/08(Wed) 00:12
GT5ばっかりでTOは全くやっとらんです。
クルマって買っても殆ど乗らない、税金高い、駐車場高い、燃料代高いで、そもそもクルマで行くような距離じゃない、むしろ行っても駐車場がない、っていう感じで無い方が楽。
なので、クルマは好きでも買わない人にとっては良いゲームですGT5。
いや、単純にクルマ好きなら良いゲームか。
あとぱんぴーには買えない5000万とかのスーパーカーとか。
5億のレースカーとか、50億の世界に一台しかないレトロカーとか。
今回かなり種類が多いんですが、買うのは殆マツダかジャガー稀にランボルギーニっていう。
別に私が広島出身だからマツダってわけじゃないです…単に好きなんですよ、いいよね、ロードスター。
エンディングまでは比較的あっさりいけるんですが、そこから後が厳しい。
ライセンスオールゴールドとか、スペシャルとかやりだすと、時間が足りないですね。
一日が48時間あればいいのにね。
とりあえず、Bスペックを会社でやるためにポリフォニーはさっさとリモートレースを実装するべきだ。
11周年
2010/12/03(Fri) 00:12
書こう書こうとしてて気づいたら月が変わっていました。
困ったもんです。
サイトが11周年となりました。
今年もケーキでお祝いしてちゃんと写真も撮ったんですが、去年ほどのネタにはならないので載せるのはやめときますね。
多分僕が死ぬまでサイトやってると思うので、何周年がどうこうとか意味ないと思うんですけど、こういうの無いと最近ネタが作れないのでいい機会って事で、ええ。
plasmasphere.net自体は7周年だか8周年だかそんなもんだと思うんですけどね。
サイトの名前何回か変えたからね…。
最近は、グランツーリスモ5買ってからTOはやっていません。
GT5が楽しすぎるっていうのがイケナイんだと思います。
新型ロードスター(マツダ)がどうしても好きになれなかったんですが、GT5で使ってみるとこれがなかなかどうしていいクルマじゃないですか。
欲しくなりますよね、リアルで。
…いや、使うこと無いから買わないけども。