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")}