用flash解析XML的一些经验总结 - 铁芒网博

来源:百度文库 编辑:神马文学网 时间:2024/04/29 11:43:40
1.为了与xml文件的编码保持一致,要记得用System.useCodepage 属性,这样就不容易出现乱码问题。

2.如果xml内容不是标准的,例如是用字符串拼凑起来的,带有回车,换行等符号,最好用XML.ignoreWhite 属性,否则flash里的xml解析器会把这些符号当成是xml的结点。

3.在flash里,xml里的结点值会被当成一个结点来看带。要找当前结点之后,才能用nodeValue获取结点值会。

4.flash的AS2.0不够完善,用它解析xml,就不能像javascript那样方便,例如javascript里可以用getElementById,getElementsByTagName等方法来查询结点,AS2.0则要麻烦了,需要用循环遍历结点,从中找到相应的内容。

5.获取外部xml数据,特别是外域xml数据,要注意安全沙箱问题,里面有许多访问权限问题需要注意。

6.如果flash读取的XML文件如果体积过大,可能出现较长等待时间,用以下方法可以实现进度监听:

var fileXML = "abc.xml";
//XML进度监听
function checkXMLProcess(xmlObj) {
 var xLoaded = xmlObj.getBytesLoaded();
 var xTotal = xmlObj.getBytesTotal();
 xLoaded = (xLoaded == 0 || xLoaded == undefined) ? 1 : xLoaded;
 xTotal = (xTotal == undefined) ? 999999 : xTotal;
 var xPercent = Math.floor(100*(xLoaded/xTotal));
 //trace(xPercent);
}
//XML调用
myXML.load(fileXML);
var xInterval = setInterval(checkXMLProcess, 100, myXML);
myXML.onLoad = function(success) {
 if (success) {
  clearInterval(xInterval);
  //your actions
 }