zoukankan      html  css  js  c++  java
  • XML的一些函數

    //XML操作函数
    /*****************************************************************************************
    Object CreateXMLParser(void)
    创建尽可能高版本的XMLDOM解析器
    *****************************************************************************************/
    function CreateXMLParser()
    {
    try{
    return new ActiveXObject('MSXML2.DOMDocument.4.0');
    }catch(e){
    try{
    return new ActiveXObject('MSXML2.DOMDocument.3.0');
    }catch(e){
    try{
    return new ActiveXObject('MSXML2.DOMDocument.2.6');
    }catch(e){
    try{
    return new ActiveXObject('MSXML2.DOMDocument');
    }catch(e){
    try{
    return new ActiveXObject('Microsoft.XMLDOM');
    }catch(e){
    return null;
    }
    }
    }
    }
    }
    }
    /*****************************************************************************************
    Object CreateHTTPPoster(void)
    创建尽可能高版本的XMLHTTP对象
    *****************************************************************************************/
    function CreateHTTPPoster(){
    try{
    return new ActiveXObject('MSXML2.XMLHTTP.4.0');
    }catch(e){
    try{
    return new ActiveXObject('MSXML2.XMLHTTP.3.0');
    }catch(e){
    try{
    return new ActiveXObject('MSXML2.XMLHTTP.2.6');
    }catch(e){
    try{
    return new ActiveXObject('MSXML2.XMLHTTP');
    }catch(e){
    try{
    return new ActiveXObject('Microsoft.XMLHTTP');
    }catch(e){
    return null;
    }
    }
    }
    }
    }
    }
    /*****************************************************************************************
    IDOMDocument GetXMLWithSession(sUrl,sMethod,vDat)
    获取一个带Session的XML文档
    +参数列表
    sUrl目标URL
    sMethod获取方式,POST or GET
    vData发送的数据
    *只能用同步方式获取
    *****************************************************************************************/
    function GetXMLWithSession(sUrl,sMethod,vData)
    {
    var r=/(ASPSESSION.*)\=([^\;\&]*)/ig;
    r.exec(document.cookie);
    var xmlHttp=CreateHTTPPoster();
    xmlHttp.open(sMethod,sUrl,false);
    xmlHttp.setRequestHeader("Cache-Control", "no-cache");
    xmlHttp.setRequestHeader("Connection", "Keep-Alive");
    xmlHttp.setRequestHeader("Accept", "*/*");
    xmlHttp.setRequestHeader("Accept-Language", "zh-cn");
    xmlHttp.setRequestHeader("Referer", window.top.location.href);
    xmlHttp.setRequestHeader("User-Agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; .NET CLR 1.0.3215; .NET CLR 1.0.3705)");
    xmlHttp.setRequestHeader(RegExp.$1,RegExp.$2);
    xmlHttp.send(URLEncoding(vData));
    if(xmlHttp.status!=200){
    if(xmlHttp.status==404){
    alert('错误:请求的应用程序不存在');
    xmlHttp=null;
    return null;
    }
    if(xmlHttp.status==500){
    alert('错误:请求的应用程序发生内部错误');
    xmlHttp=null;
    return null;
    }
    alert('发生未知错误,错误类型为 '+xmlHttp.status.toString());
    xmlHttp=null;
    return null;
    }else{
    var xmlDom=xmlHttp.responseXML;
    xmlHttp=null;
    if(xmlDom.parseError.errorCode!=0){
    alert(xmlDom.parseError.reason);
    xmlDom=null;
    return null;
    }else{
    return xmlDom.documentElement;
    }
    }
    }
    /*****************************************************************************************
    ClearDropDownList(目标Object,是否保留第一个)
    *****************************************************************************************/
    function ClearDropDownList(oSel,bolLeaveFirst)
    {
    if(oSel==null || oSel.tagName.toLowerCase()!='select'){
    alert('SELECT控件不存在!\n'+oSel.tagName);
    return;}
    var iLength=oSel.options.length;
    if(bolLeaveFirst)
    iTmp=1;
    else
    iTmp=0;
    for(iCnt=iLength-1;iCnt>=iTmp;iCnt--)
    oSel.options.remove(iCnt);
    oSel=null;
    }
    /*****************************************************************************************
    IDOMDocument XMLStringToNodeList(String)
    将XML字符串转换成NodeList
    *****************************************************************************************/
    function XMLStringToNodeList(strXml){
    var oXml=CreateXMLParser();
    oXml.async=false;
    try{
    oXml.loadXML(strXml);
    }catch(e){
    oXml=null;
    return null;
    }
    var nlTemp=oXml.documentElement;
    oXml=null;
    return nlTemp;
    }
    /*****************************************************************************************
    NODES GetXMLNodeList(XML文件路径,XPATH选择器)
    如:
    GetXMLNodeList("/test.xml","//COUNTRY[@CODE='1236']'");
    *****************************************************************************************/
    function GetXMLNodeList(strXMLFile,strXPathFilter){
    var oDom=CreateXMLParser();
        oDom.async=false;
    oDom.load(strXMLFile);
        if(oDom.parseError.errorCode!=0){
            alert('装载XML文档 '+strXMLFile+' 出错了!');
    oDom=null;
    return null;
        }else{
            var nodesTemp=oDom.documentElement.selectNodes(strXPathFilter);
    oDom=null;
    if(nodesTemp.length<1) {
    //alert('错误的XMPATH选择器\n'+strXPathFilter);
    return null;
    }
    return nodesTemp;
        }
    }
    /*****************************************************************************************
    Integer MessageBox (strMessage,strTitle,intIcon,intButtons,intDefaultButton)
    显示VBSctipt样式对话框
    *****************************************************************************************/
    function MessageBox(strMessage,strTitle,intIcon,intButtons,intDefaultButton)
    {
    strMessage=strMessage.replace(/\"/g,'""').replace(/\n/g,'" & vbCrLf & "');
    strTitle=strTitle.replace(/\"/g,'""').replace(/\n/g,'" & vbCrLf & "');
    window.Temp=0;
    try{
    execScript('Window.Temp=MsgBox("'+strMessage+'",'+(intIcon+intButtons+intDefaultButton).toString()+',"'+strTitle+'")','VBScript');
    return window.Temp;
    }catch(e){
    alert(e.description);
    return null;
    }
    }
    /*****************************************************************************************
    void AttachVBFunctionsToWindow (void)
    绑定VB常用函数到JScript
    在页面中执行此函数以后就可以直接使用URLEcoding/URLDecoding/Bytes2BSTR/VBTypeName/VBVarType等函数
    VBTypeName和VBVarType可以更细致地区分各种变量类型
    *****************************************************************************************/
    function AttachVBFunctionsToWindow()
    {
    var s=
    'Public Function URLEncoding(v)\n'+
    'Dim s,t,i,j,h,l,x : s = "" : x=Len(v)\n'+
    'For i = 1 To x\n'+
    't = Mid(v,i,1) : j = Asc(t)\n'+
    'If j> 0 Then\n'+
    's = s & t\n'+
    'Else\n'+
    'If j < 0 Then j = j + &H10000\n'+
    'h = (j And &HFF00) \\ &HFF\n'+
    'l = j And &HFF\n'+
    's = s & "%" & Hex(h) & "%" & Hex(l)\n'+
    'End If\n'+
    'Next\n'+
    'URLEncoding = s\n'+
    'End Function\n\n'+
    'Public Function URLDecoding(sIn)\n'+
    'Dim s,i,l,c,t,n : s="" : l=Len(sIn)\n'+
    'For i=1 To l\n'+
    'c=Mid(sIn,i,1)\n'+
    'If c<>"%" Then\n'+
    's = s & c\n'+
    'Else\n'+
    'c=Mid(sIn,i+1,2) : i=i+2 : t=CInt("&H" & c)\n'+
    'If t<&H80 Then\n'+
    's=s & Chr(t)\n'+
    'Else\n'+
    'c=Mid(sIn,i+1,3)\n'+
    'If Left(c,1)<>"%" Then\n'+
    'URLDecoding=s\n'+
    'Exit Function\n'+
    'Else\n'+
    'c=Right(c,2) : n=CInt("&H" & c)\n'+
    't=t*256+n-65536\n'+
    's = s & Chr(t) : i=i+3\n'+
    'End If\n'+
    'End If\n'+
    'End If\n'+
    'Next\n'+
    'URLDecoding=s\n'+
    'End Function\n'+
    'Public Function Bytes2BSTR(v)\n'+
    'Dim r,i,t,n : r = ""\n'+
    'For i = 1 To LenB(v)\n'+
    't = AscB(MidB(v,i,1))\n'+
    'If t < &H80 Then\n'+
    'r = r & Chr(t)\n'+
    'Else\n'+
    'n = AscB(MidB(v,i+1,1))\n'+
    'r = r & Chr(CLng(t) * &H100 + CInt(n))\n'+
    'i = i + 1\n'+
    'End If\n'+
    'Next\n'+
    'Bytes2BSTR = r\n'+
    'End Function\n'+
    'Public Function VBTypeName(chrIn) : VBTypeName=TypeName(chrIn) : End Function\n'+
    'Public Function VBVarType(chrIn) : VBVarType=VarType(chrIn) : End Function\n';
    execScript(s,'VBScript');
    }
  • 相关阅读:
    HTML DOM教程 14HTML DOM Document 对象
    HTML DOM教程 19HTML DOM Button 对象
    HTML DOM教程 22HTML DOM Form 对象
    HTML DOM教程 16HTML DOM Area 对象
    ubuntu 11.04 问题 小结
    VC6.0的 错误解决办法 小结
    boot.img的解包与打包
    shell里 截取字符串
    从零 使用vc
    Imagemagick 对图片 大小 和 格式的 调整
  • 原文地址:https://www.cnblogs.com/janmson/p/359613.html
Copyright © 2011-2022 走看看