Luar's Flash Playground:[AS2] XML處理特別字符注意事項
[AS2] XML處理特別字符注意事項 (19-05-2009)

平常用載入XML File再加以分析,通常只會用childNodes[n].toString()去提取數據,看似已經將數據轉成自己需要的String等格式,在一般情況下,沒有問題,但當遇上XML包含特別字符時,就會出錯,常見特別字符好像「', &, "」,以下是例子,假設載入XML File是:

<?xml version="1.0" encoding="UTF-8" ?>
<data>
  <sentence><![CDATA[Luar's "Friends" & Friends]]> </data>
ActionScript是:
var xml:XML = new XML();
xml.ignoreWhite = true;
xml.onLoad = function() {
  var node:XMLNode = this.firstChild.childNodes[0];
  trace(node.childNodes[0]);
  trace(node.childNodes[0].toString());
  trace(node.childNodes[0].nodeValue);
};
xml.load("sample.xml");
trace出來結果:
Luar&apos;s &quot;Friends&quot; &amp; Friends
Luar&apos;s &quot;Friends&quot; &amp; Friends
Luar's "Friends" & Friends

所以最穩妥的做法,應該是用nodeValue去提取。


如果是用AS3和E4X,就沒有這問題:

var xml:XML = new XML();
var xmlFile:String = "sample.xml";
var urlReq:URLRequest = new URLRequest(xmlFile);
var urlLoader:URLLoader = new URLLoader(urlReq);
urlLoader.addEventListener("complete", xmlLoaded);
function xmlLoaded(event:Event):void {
  xml = XML(urlLoader.data);
  trace(xml.sentence.toString());
}
trace出來結果:
Luar's "Friends" & Friends

[下載本例子Fla]

本文章由發表。
意見
"; print "沒有意見。
 "; } ?>
  • 奇怪字符的处理就是头疼啊。。

    由converter於21-05-2009發表

同組文章