您的位置:首页 > 编程语言 > PHP开发

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

2011-09-28 16:21 465 查看
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)


以下代码省略。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
相关文章推荐