平常用載入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]
原文出自:http://www.luar.com.hk/flashbook/archives/001417.php
|