Home > Tips Archive
Tips Archive
AS3でShift-JISのXMLを読み込むと、エラーになったりならなかったりする
- 2010年1月 5日 15:45
- Tips
as3で読み込むXMLは、Shift-JISにしないで、UTF-8にしたほうがいい。
おなじみ、System.useCodePage=trueで読み込めるのですが、
AS3だと、読み込むと、謎のゴミが文末にできて、(しかもできたりできなかったりする)
それがパーサエラーになる。
特に、複数読み込むと、本当ひどいありさま。
ググっても、あまりよい文献が出てこなかったので、まとめ。
●SimpleXMLLoaderクラス
いきなり金字塔かと思いきや、ぼくの場合、古臭いXMLDocumentクラスを使っていたので、
読み込んだXMLをストリングに直して、またXMLDocumntをしてパースしなおすときに、
エラーこいてしまった。
ちなみにXMLDocumentクラスも使わない方がいい(使ってるのオレだけか)
●XMLデータの末尾にゴミがついた時の対処法
これはすごく強引で、最後の閉じタグを検索して、そこの間だけを抜き取ってXML化する、というやりかた。
シンプルだけにわかりやすい。
で、さらにぼくの場合、複数のXMLを読み込んだ中身が混在しているといった事態が沖田総司。
XML1 <tree> --------あーたらこーたら-------------------------------どーたら-----</tree>
XML2 <tree> --------あーたらこーたら-----------------</tree>
XML2を見ると、</tree>が2個入っているんである。つまり、
XML2 <tree> --------あーたらこーたら-----------------</tree>----どーたら-----</tree>
となっていた。
てことで、
System.useCodePage = true;
var urlLoader:URLLoader = new URLLoader();
urlLoader.addEventListener(Event.COMPLETE, loadCompleteHandler);
urlLoader.load(new URLRequest("ファイル名"));
var endTag:String = "一番最後の閉じタグ";
var xml:XML;
function loadCompleteHandler(event:Event):void {
var data:String = event.target.data;
xml = new XML(data.substring( 0, data.IndexOf(endTag) + endTag.length));
}
こうした。
これも対症療法だから、もうShift-JISはやめたほうがいいみたいですね。
おなじみ、System.useCodePage=trueで読み込めるのですが、
AS3だと、読み込むと、謎のゴミが文末にできて、(しかもできたりできなかったりする)
それがパーサエラーになる。
特に、複数読み込むと、本当ひどいありさま。
ググっても、あまりよい文献が出てこなかったので、まとめ。
●SimpleXMLLoaderクラス
いきなり金字塔かと思いきや、ぼくの場合、古臭いXMLDocumentクラスを使っていたので、
読み込んだXMLをストリングに直して、またXMLDocumntをしてパースしなおすときに、
エラーこいてしまった。
ちなみにXMLDocumentクラスも使わない方がいい(使ってるのオレだけか)
●XMLデータの末尾にゴミがついた時の対処法
これはすごく強引で、最後の閉じタグを検索して、そこの間だけを抜き取ってXML化する、というやりかた。
シンプルだけにわかりやすい。
で、さらにぼくの場合、複数のXMLを読み込んだ中身が混在しているといった事態が沖田総司。
XML1 <tree> --------あーたらこーたら-------------------------------どーたら-----</tree>
XML2 <tree> --------あーたらこーたら-----------------</tree>
XML2を見ると、</tree>が2個入っているんである。つまり、
XML2 <tree> --------あーたらこーたら-----------------</tree>----どーたら-----</tree>
となっていた。
てことで、
System.useCodePage = true;
var urlLoader:URLLoader = new URLLoader();
urlLoader.addEventListener(Event.COMPLETE, loadCompleteHandler);
urlLoader.load(new URLRequest("ファイル名"));
var endTag:String = "一番最後の閉じタグ";
var xml:XML;
function loadCompleteHandler(event:Event):void {
var data:String = event.target.data;
xml = new XML(data.substring( 0, data.IndexOf(endTag) + endTag.length));
}
こうした。
これも対症療法だから、もうShift-JISはやめたほうがいいみたいですね。
- Comments: 0
- TrackBacks: 0
Boot Camp ドライバがない人のために
- 2009年6月 7日 17:47
- Tips
MacBook Proとかを買ったら、まず思うのが「とりあえずBoot Campにしておくか」ということ。
でも、そんなときに限って、XP SP3のCDがあっても、Leopardのインストールディスクがなかったりする。
なのに、Windowsのインストールが完了してしまったら地獄で、
ネットにもつながらない、640*480しか表示できない糞Windowsマシンになりさがる。
Boot campのドライバは、いくら探しても、アップルのページにはない。
で、ここ。
http://thepiratebay.org/torrent/3860505/BootCamp_2.0_(Leopard)_Windows_drivers
ワレズじゃないんだけど、ドライバを共有してくれている人がいます。
日本語環境でも、まったく問題なく使えますよ。
- Comments: 0
- TrackBacks: 0
Home > Tips Archive
Webデザインの「プロだから考えること」