• 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")
    }
  • 相关阅读:
    JSP内置对象
    Angular $scope和$rootScope事件机制之$emit、$broadcast和$on
    Ionic开发实战
    Entity Framework 5.0 Code First全面学习
    6个强大的AngularJS扩展应用
    使用npm安装一些包失败了的看过来(npm国内镜像介绍)
    自己家里搭建NAS服务器有什么好方案?
    自己动手制作CSharp编译器
    使用Visual Studio Code搭建TypeScript开发环境
    Office web app server2013详细的安装和部署
  • 原文地址:https://www.cnblogs.com/xbglbc/p/3835921.html
Copyright © 2020-2023  润新知