XML是否合法spa
在我认为 XML的标签成对 而且根标签外边没有其余东西code
如下是合法的xml
<?xml version="1.0" encoding="utf-8"?> <root><a/>cc</root>
<root><a/>cc</root>
如下是我认为不合法的blog
ASDASDASDASD
ASDASD<root><a/>cc</root>
asdasd<root>
我如今有个需求就是须要加载的XML文件有合法的能够直接使用的,有的是通过压缩的没法直接使用的utf-8
压缩后的内容get
x陧}[?筿輠€鼑?鲏?^蓮A?8?[F藨
我须要判断这个XML是否合法it
可是io
str = "x陧}[?筿輠€鼑?鲏?^蓮A?8?[F藨";event
var xml:XML = new XML(str);class
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")}