⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 msgbody.htc

📁 HTC,demo WEB用于。 超大型
💻 HTC
📖 第 1 页 / 共 2 页
字号:
      objXSLTFragement = __objGlobalCommonInst.inputXML(strConstMsgXSD);      
    }//End of if
  }
  
  function putInUseState(sInUseState){
  
    if(typeof(sInUseState) == "string"){
      switch(sInUseState.toString().toLowerCase()){
        case "free":
          strInUseState = "free";
          __objGlobalCommonInst.freeMsgBodyCount = __objGlobalCommonInst.freeMsgBodyCount + 1;
          break;
        case "busy":
          strInUseState = "busy";
          __objGlobalCommonInst.freeMsgBodyCount = __objGlobalCommonInst.freeMsgBodyCount - 1;  
          break;
        default://error
          window.prompt("","");
      }//End of switch
    }else{
      window.prompt("","");
    }//End if
  
  }//End of putInUseState
  
  function getInUseState(){
    return(strInUseState);
  }

  function clearChildMsgBody(){//移除全部下级MsgBody节点

    for(var i = 0; i < intChildMsgBodysCount; i++){// 1
      arrChildMsgBodys[i].inUseState = "free"; //将要释放节点的“被用”标志置为 free
      arrChildMsgBodys[i].parentMsgBody = null;
      __objGlobalCommonInst.freeMsgBodyCount += 1;  
    }//End of for 1
    intChildMsgBodysCount  = 0;

    for(var i = 0; i < objXMLFragement.childNodes.length; i++){// 2
      if(objXMLFragement.childNodes.tagName = "MsgBody"){
        objXMLFragement.removeChild(objXMLFragement.childNodes(i));
      }
    } //End of for 2
      
  }//End of clear

  function appendChildMsgBody(anyChildMsgBody){//插入下级MsgBody

    var oChildMsg;//缓存从Common获得的MsgBody实例
    var strSwap;
    var intResultAddChild;
    var intAddResult;
    
    switch(typeof(anyChildMsgBody)){//判断传入参数的类型
    
	  case "string"://传入的是字符串参数,则:
        return addMsgBody(anyChildMsgBody);        
        break;
      case "object":
        if(anyChildMsgBody.xml){//XML对象
          strSwap = anyChildMsgBody.xml;
          intAddResult = addMsgBody(strSwap);
          return(intAddResult);          
        }else{          
          if(anyChildMsgBody.innerXML){//如果传入的是一个MsgBody
            if(anyChildMsgBody.inUseState != "free"){
              window.prompt("当前传入的MsgBody节点已经在其他地方被使用。不能被插入到当前请求序列中。下面是当前节点的代码:", anyChildMsgBody.innerXML);
              return(-1);
            }//End of if anyChildMsgBody.inUseState != "free"
            anyChildMsgBody.inUseState = "busy"; //MsgBody的可用状态被置为:busy : 已经被占用,暂时不可用。
            anyChildMsgBody.parentMsgBody = element;
            arrChildMsgBodys[intChildMsgBodysCount] = anyChildMsgBody;//加入到当前复合应用的原子请求序列中
            objXMLFragement.childNodes(0).insertBefore(anyChildMsgBody.XMLFragement.childNodes(0).cloneNode(true),null);
            //objXMLFragement.childNodes(0).appendChild(anyChildMsgBody.XMLFragement.childNodes(0).cloneNode(true));//同步XML
            intChildMsgBodysCount += 1; //孩子数目加1            
          }//End of if(anyChildMsgBody.innerXML)          
        }//End of if anyChildMsgBody.xml
        break;      
		}//End of switch  		
  }//End of appendChild

  
  function addMsgBody(sMsgBody){//加入已经确认的MsgBody对象
    var oChildMsg;
    oChildMsg = __objGlobalCommonInst.createMsgBody();//从common获得一个新的MsgBody
    oChildMsg.innerXML = sMsgBody;

    if(oChildMsg.parseState=="correct"){//解析正确
      oChildMsg.inUseState = "busy"; //MsgBody的可用状态被置为:busy : 已经被占用,暂时不可用。
      oChildMsg.parentMsgBody = element;
      arrChildMsgBodys[intChildMsgBodysCount] = oChildMsg;//加入到当前复合应用的原子请求序列中
      intChildMsgBodysCount += 1; //孩子数目加1
      __objGlobalCommonInst.freeMsgBodyCount = __objGlobalCommonInst.freeMsgBodyCount - 1;
      objXMLFragement.childNodes(0).insertBefore(oChildMsg.XMLFragement.childNodes(0).cloneNode(true),null);//同步XML
      //objXMLFragement.appendChild(oChildMsg.XMLFragement.childNodes(0));
      return(0);
    }else{//解析错误
      window.prompt("传入的XML不符合MsgBody的XSD定义,是非法结构。\n下面的内容是当前传入的XML字符串:",strSwap);
      return(-1);
    }//End of If
    
  }//End of addMsgBody

  function removeChildMsgBody(anyRemoveChild){//接受两种参数:1、integer 类型的索引标识 2、object 直接引用类型
    var inTarget;
    var inAction;
    var objSwapFragement;

    switch(typeof(anyChildMsgBody)){
      case "number":
        if(anyRemoveChild >= 0 && anyRemoveChild < intChildMsgBodysCount){//传入的索引在合法范围内
          
          objSwapFragement = __objGlobalCommonInst.inputXML(objXMLFragement.xml.replace(arrChildMsgBodys[anyRemoveChild].XMLFragement.xml,""));//用字符串替换,将当前MsgBody中的XML从整体XML中移除
          if(objSwapFragement.childNodes.length == 1){//简单的形式检验
            if(objXMLFragement.childNodes.length >= 1){
              objXMLFragement.removeChildNodes(objXMLFragement.childNodes(0));//清除当前请求体内的代码
            }//End of if(objXMLFragement.childNodes.length >= 1)
            objXMLFragement.appendChild(objSwapFragement.childNodes(0));//重新装载XML
          }else{
            window.prompt("当前进行的操作非法,将使请求体MsgBody变成:",objSwapFragement.xml);
            return(-1);
          }//End of if

          arrChildMsgBodys[anyRemoveChild].inUseState = "free"; //将要释放节点的“被用”标志置为 free
          arrChildMsgBodys[anyRemoveChild].parentMsgBody = null;          
          
          for(var i = anyRemoveChild; i < intChildMsgBodysCount; i++){
            //将被删除的节点后面的节点前移
            arrChildMsgBodys[i] = arrChildMsgBodys[i+1];
          }//End of for          
          intChildMsgBodysCount = intChildMsgBodysCount - 1; //孩子数目减1
          
          arrChildMsgBodys.length = intChildMsgBodysCount;//数组长度减1
          return(0);
          
        }else{//索引值超出范围
          return(-1); 
        }//End of if
        break;
		  case "string":        
        break;
      case "object":
        break;
    }//End of switch
    
  }//End of function removeChild
  
  function addParameter(strName, strValue){//装配Parameter

    var objPE;
    var objPE2;
    if(typeof(strValue)=="object")
      strValue = "";
    //
    objPE = objXMLFragement.selectSingleNode("/*/*/*[@Name='" + strName + "']");    
    
    var oParameterNode = objXMLFragement.childNodes(0).childNodes(0);
    
    if(!objPE){//如果这个节点不存在    
      if(oParameterNode!=null && oParameterNode.tagName.toLowerCase() == "parameters"){//parameters
        objPE = __objGlobalCommonInst.createElement("Parameter");
        objPE.setAttribute("Name",strName);
        objPE.setAttribute("Val",strValue);
        objXMLFragement.childNodes(0).childNodes(0).appendChild(objPE);
      }else{  
        objPE2 = __objGlobalCommonInst.createElement("Parameters");       
        objPE2 = objXMLFragement.childNodes(0).appendChild(objPE2);
        
        objPE = __objGlobalCommonInst.createElement("Parameter");
        objPE.setAttribute("Name",strName);
        objPE.setAttribute("Val",strValue);
        objPE2.appendChild(objPE);        
      }//End of if Parameters
      
    }else{//如果已经有这个节点
      objPE.setAttribute("Val",strValue);
    }//End of objPE  
  
  }
  
  function addR(anyRNodeList){//装配r元素行
	
    var objFSwap;
    var tmpLength;
    var objNodeList;
    
    var oR = objXMLFragement.selectNodes("/*/r");
    var oMsgBody = objXMLFragement.childNodes(0);

    for(var i=0; i < oR.length; i++){//如果有r行则删除
      oR(i).parentNode.removeChild(oR(i));
    }   

    switch(typeof(anyRNodeList)){//判断传入的参数的类型

      case "string"://字符串   
        anyRNodeList = anyRNodeList.replace(/<\?xml[0-9a-zA-Z\s\'\"=\-.\?]{0,}>/g,"");
        objFSwap = __objGlobalCommonInst.inputXML("<root>" + anyRNodeList + "</root>");
        tmpLength = objFSwap.childNodes(0).childNodes.length;
        for(var i = 0; i < tmpLength; i++){
            
          objXMLFragement.childNodes(0).appendChild(objFSwap.childNodes(0).childNodes(i).cloneNode(true));          
        }
        break;
        
      case "object"://对象    
        tmpLength = anyRNodeList.childNodes.length;
        for(var j=0;j<tmpLength;j++){
          objXMLFragement.childNodes(0).appendChild(anyRNodeList.childNodes(j).cloneNode(true));
        }
        break;
    }  
      
  }

//-->
</script>
</public:component>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -