【笔记】AS3.0实例化XML时“#1088 文档中根元素后面的标记格式必须正确”的处理

来源:互联网 发布:淘宝禁止销售兴奋剂 编辑:程序博客网 时间:2024/06/05 05:44

2010年06月25日 星期五 13:56

由于某度众所周知的铜臭举动,让我搬离写了5年的渣度空间,准备把技术性的文章定在CSDN了。这些都是文章备份。勿怪。。



注意:大多数内容来源于网络,yukon12345编辑整理


以前用xml在flash和php之间通讯好好的,只要设置php为utf-8编码,xml的encoding=”utf-8“再echo就行了。

因为flash默认接受utf-8格式的编码。但今天做一个比较复杂的php,里面包含有session验证,检测出session_id()非法时就输出xml,问题就来了。

在new XML("服务器xml数据")时一直报错:”#1088 文档中根元素后面的标记格式必须正确“。

用fiddler抓包检查了下并没发现有多余的字符。trim掉2头的空格也行不通。

查了查网上,据说是php返回字段会在末尾附加发出随机的字符?建议在末尾截掉”>“之后的字符。


用他的方法试了下还是出错。反复搞了一段时间,忽然想到是不是xml前也有问题?截掉第一个”<“之前的所有字符。终于通过了!(囧啊。不知道为啥。崩溃。)

方法:

AS3:
function onError(e:Event){//截掉最后一个>之后所有字符var _tmp_data=DataEvent(e).data.substr(0,DataEvent(e).data.lastIndexOf(">")+1)//截掉最前一个<?xml之前所有字符_tmp_data=_tmp_data.substr(_tmp_data.indexOf("<?xml"),_tmp_data.length);var xml=new XML(_tmp_data)


以下代码省略。
原创粉丝点击