日期:2014-05-16  浏览次数:20430 次

javascript创建xmlDom对象02
xmlDom对象

/**
 * delHighCapTempTabReq      发送删除临时表的请求
 * @param {string} sTempTabNo  临时表号
 * 
 */
function delHighCapTempTabReq(sTempTabNo)
{	
	//入参检查
	if (!sTempTabNo)
	{
		return;
	}
	var oRequestNode= creatHighCapDelTblCMD(sTempTabNo);
	
	//modify by z56317 20120523 更改为HTTPS协议后,由于返回给UI的结果用时较长,导致页面关闭后命令无法返回,连接无法释放,采用同步的机制进行处理, 
	//超时时间也修改为2秒,以免用户点击关闭页面后,服务器返回时间过长后页面关闭不掉,对用户感受不好。	
	//toXMLPack(oRequestNode, g_sendType.Asy, null);
	toXMLPack(oRequestNode, g_sendType.Syn, null, g_time.TwoSec);
}

/*******************************************************************************
函数名:    creatHighCapDelTblCMD
功能:     构造删除临时表的XML片段
            Return:  XML片段(DOM)-成功 null-失败
*******************************************************************************/
function creatHighCapDelTblCMD(tmpTblId)
{
    if(!tmpTblId)
    {
        return null;
    }

    var oXmlDom = initXmlDom(g_cmdCode.CHR_CMD_HIGHCAP_DEL_TMP_TBL);
    var doc = oXmlDom[0];
    var requestNode = oXmlDom[1];

	var sessionId = parseCookie();
    var SESSIONIDNode = creatSingleChildParaNode(doc,"SESSIONID",sessionId);
    requestNode.appendChild(SESSIONIDNode);
	
	var arrTmpTblId = tmpTblId.split(",");
    var tmpTblIdNode = creatMulitChildParaNode(doc,"TEMP_TBL",arrTmpTblId);
    requestNode.appendChild(tmpTblIdNode);

    return requestNode;
}
//----------------------------------------------------------------

//--------------------------------xml解析 孙国峰----------------------------------------
/*******************************************************************************
函数名:    XMLToDict
功能:     结果集合XML解析成节点字典 节点以area为单位!
*******************************************************************************/
function XMLToDict(oRoot)
{
    if(null == oRoot)
    {
        //alert("正在解析的XML为空!");
        return null;
    }
    //alert("in XMLToDict-->"+oRoot.xml)
    //获取DOM对象的根节点名称 
    var sNodeName = oRoot.nodeName;     //取得dom对象根节点
        
    //检查传入的data数据包是否正确
    if ("response" != sNodeName)
    {
        //alert("in parseTBL()! request error");
        return null;
    }

    var areaNodeList = oRoot.getElementsByTagName("area");     //取得dom节点集合area
    if(null == areaNodeList)
    {
        return null;
    }
    else
    {
        var nodeDict = {};      //声明节点字典变量
        //for(var i in pageNodeList)
        for(var i = 0 ;i<areaNodeList.length; i++)            //循环area节点集合
        {   
            var sKey = areaNodeList[i].getAttribute("name")   //取得每一个节点的name属性
            //alert(sKey);
            nodeDict[sKey] = areaNodeList[i];                 //将每一个area节点赋给节点字典nodeDict
        }
        
        var recode = oRoot.getAttribute("recode");            //取得根节点的recode属性
        //if("-1" == recode)
		if("0" != recode)
        {
            /*
            if(null == nodeDict["DETAIL"])
            {
                //alert("no DETAIL node!!");
            }
            else
            {
                var errDetal = nodeDict["DETAIL"].childNodes[0].attributes[0].nodeValue;
                alert("Server:" + errDetal);
            }
            */
            
            return null;
        
        }
        
        return nodeDict;
    }

}

/*******************************************************************************
函 数 名  : XMLToDictForRequestNode
功能描述  : 序列化request请求xml
输入参数  : oRoot - xmldom对象
返 回 值  : arrNodeDict - para节点字典,元素为xmldom节点对象,可以通过name索引,
           例如:arrNodeDict["test"]访问name属性为test的xml节点。
           null - 解析失败或参数错误。
调用函数  : 无
被调函数  : 模板管理模块requestTemplateInfoCallBack
*******************************************************************************/
function XMLToDictForRequestNode(oRoot)
{
    if(null == oRoot)
    {
        return null;
    }
    
    //获取DOM对象的根节点名称 
    var sNodeName = oRoot.nodeName;
        
    //检查传入的data数据包是否正确
    if ("request" != sNodeName)
    {
        return null;
    }