首页 > 代码库 > as3判断XML是否合法
as3判断XML是否合法
XML是否合法
在我认为 XML的标签成对 并且根标签外边没有其他东西
以下是合法的
<?xml version="1.0" encoding="utf-8"?><root><a/>cc</root>
<root><a/>cc</root>
以下是我认为不合法的
ASDASDASDASD
ASDASD<root><a/>cc</root>
asdasd<root>
我现在有个需求就是需要加载的XML文件有合法的可以直接使用的,有的是经过压缩的无法直接使用的
压缩后的内容
x陧}[?筿輠€鼑?鲏?^蓮A?8?[F藨
我需要判断这个XML是否合法
但是
str = "x陧}[?筿輠€鼑?鲏?^蓮A?8?[F藨";
var xml:XML = new XML(str);
trace(xml)//竟然不是null
我是这么解决的
我认为如果new XML不报错 并且第一个字符是"<" 而且 最后一个字符是">" 我就认为这个XML合法 如果解压缩后还不满足就直接当text使用
var tmpByte:ByteArray = event.currentTarget.data;var tmpText:String = "";var tmpXml:XML;try{ tmpXml = new XML(tmpByte.readUTFBytes(tmpByte.length)); tmpText = tmpXml.toString(); if(!(tmpText.substr(0,1) == "<" && tmpText.substr(tmpText.length - 1, 1) == ">")) { tmpXml = null; } else { tmpText = tmpXml.toString(); }} catch (error:Object) { tmpXml = null; }if (tmpXml == null){ try { tmpByte.uncompress(CompressionAlgorithm.ZLIB); tmpXml = new XML(tmpByte.readUTFBytes(tmpByte.length)); tmpText = tmpXml.toString(); if(!(tmpText.substr(0,1) == "<" && tmpText.substr(tmpText.length - 1, 1) == ">")) { tmpXml = null; } else { tmpText = tmpXml.toString(); } } catch (error:Object) { tmpXml = null; } if (tmpXml == null) { tmpText = tmpByte.readUTFBytes(tmpByte.length); }}
if (tmpXml == null)
{
trace("此字符不是XML");
}
else
{
trace("此数据是XML")
}
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。