平常用載入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's "Friends" & Friends
Luar's "Friends" & 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] |