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

as3判断XML是否合法

时间: 2024-10-13 18:41:38

as3判断XML是否合法的相关文章

判断数独是否合法(LintCode)

判断数独是否合法 请判定一个数独是否有效. 该数独可能只填充了部分数字,其中缺少的数字用. 表示. 样例 下列就是一个合法数独的样例. 注意 一个合法的数独(仅部分填充)并不一定是可解的.我们仅需使填充的空格有效即可. 说明 什么是 数独? http://sudoku.com.au/TheRules.aspx http://baike.baidu.com/subview/961/10842669.htm 一开始认为会超时于是有了用空间换时间的想法于是出现如下代码.. 后来一想,应该不会超时把..

php 判断 xml 里是否存在某个节点

参考网址:http://blog.csdn.net/crazyboy2005/article/details/6114454 DOMDocument中,怎样判断某节点是否存在呢? /* $xml->getElementsByTagName("TARGET");返回的是一个DOMNodeList对象, 而DOMNodeList对象的定义: DOMNodeList { /* Properties */ readonly public int $length ; /* Methods

判断身份证是否合法

using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace Common { public static class IdentityCardHelper { /// <summary> /// 1.判断身份证是否合法 /// 2.判断用户是否成年 /// </summary> /// <

lintcode 容易题:Valid Sudoku 判断数独是否合法

题目: 判断数独是否合法 请判定一个数独是否有效.该数独可能只填充了部分数字,其中缺少的数字用 . 表示. 样例 下列就是一个合法数独的样例. 注意 一个合法的数独(仅部分填充)并不一定是可解的.我们仅需使填充的空格有效即可. 说明 什么是 数独? http://sudoku.com.au/TheRules.aspx http://baike.baidu.com/subview/961/10842669.htm 解题: 感觉这很难到不知道如何进行,在这里看到,只需判断每行,每类,每个小3*3矩阵

华为在线测试题[基础篇]--判断IP是否合法

现在IPV4下用一个32位无符号整数来表示,一般用点分方式来显示,点将IP地址分成4个部分,每个部分为8位,表示成一个无符号整数(因此不需要用正号出现),如10.137.17.1,是我们非常熟悉的IP地址,一个IP地址串中没有空格出现(因为要表示成一个32数字). 现在需要你用程序来判断IP是否合法. //判断是否为合法IP #include<iostream> #include<string> #include<vector> using namespace std;

判断邮箱是否合法

/** * 验证输入的邮件地址是否合法 * * @access public * @param string $email 需要验证的邮件地址 * * @return bool */ function is_email($user_email) { $chars = "/^([a-z0-9+_]|\\-|\\.)[email protected](([a-z0-9_]|\\-)+\\.)+[a-z]{2,6}\$/i"; if (strpos($user_email, '@') !==

as3 读取XML和txt

package { import flash.display.Sprite; import flash.events.Event; import flash.net.URLLoader; import flash.net.URLRequest; import flash.text.TextField; public class Test extends Sprite { var textField:TextField; var arrDirty:Array; var arrName:Array;

AS3操作XML文件

好久没有写AS3程序了...马丹连个xml读取都不会了快.. 下面是一个很好的例子,自己使用Flex biulder刚写的: 代码如下: package { import flash.display.Sprite; import flash.events.Event; import flash.net.URLLoader; import flash.net.URLRequest; public class TestXml extends Sprite { private var lod:URLL

LintCode_389 判断数独是否合法

题目 请判定一个数独是否有效. 该数独可能只填充了部分数字,其中缺少的数字用 . 表示. 注意事项 一个合法的数独(仅部分填充)并不一定是可解的.我们仅需使填充的空格有效即可. 说明 什么是 数独? http://sudoku.com.au/TheRules.aspx http://baike.baidu.com/subview/961/10842669.htm 样例 下列就是一个合法数独的样例. C++代码 1 void clear(int *s, int n) 2 { 3 for(int i