曾经爱晚人








永远自由的心

自己写的一个转换js中转换XML格式的函数

XmlDomTmp.loadXML(result.value);  //Temp XmlDom  
    
                    
var mtXmllen= BaseXmlDom.selectNodes("//root/markettype").length;  //门店类别节点length
                    var tmpXmllen=XmlDomTmp.selectNodes("//root/PROCOMM_DETAIL").length;   

                     
if(mtXmllen!=0 && tmpXmllen!=0{
                        
var pnode=XmlDomDetail.createElement("root");
                        
var tempNode = XmlDomTmp.selectSingleNode("//root/PROCOMM_DETAIL");
                        
                        
while(tempNode!=null)
                            
{
                                
var tempXPath = "//root/PROCOMM_DETAIL";
                                tempXPath 
+= "[@FSCID='" + tempNode.getAttribute("FSCID"+ "'";
                                tempXPath 
+= " and @FPRODUCTID='" + tempNode.getAttribute("FPRODUCTID"+ "'";
                                tempXPath 
+= " and @FCTYPE != '" + tempNode.getAttribute("FCTYPE"+ "']" ;
                                
var cnode=XmlDomDetail.createElement("PROCOMM_DETAIL"); // Create One ChildNode    
                                var tempList = XmlDomTmp.selectNodes(tempXPath);
                                
if (tempList.length > 0)
                                 
{
                                    
//遍历tempList集合,使用自定义规则构建XmlDomDetail
                                    cnode.setAttribute("FSCID",tempNode.getAttribute("FSCID"));
                                    cnode.setAttribute(
"FPRODUCTID",tempNode.getAttribute("FPRODUCTID"));
                                    cnode.setAttribute(
"FPRODUCTNAME",tempNode.getAttribute("FPRODUCTNAME"));
                                    cnode.setAttribute(
"FCTYPE_0",tempNode.getAttribute("FCTYPE"));
                                    cnode.setAttribute(
"FCTYPENAME_0",tempNode.getAttribute("FCTYPENAME"));
                                    cnode.setAttribute(
"FMONEY_0",tempNode.getAttribute("FMONEY"));
                                    cnode.setAttribute(
"FCHGMONEY_0",tempNode.getAttribute("FCHGMONEY"));
                                    
for (var j=0;j<tempList.length;j++//tempList.length=2 
                                        {
                                            cnode.setAttribute(
"FCTYPE_"+(j+1),tempList(j).getAttribute("FCTYPE"));
                                            cnode.setAttribute(
"FCTYPENAME_"+(j+1),tempList(j).getAttribute("FCTYPENAME"));
                                            cnode.setAttribute(
"FMONEY_"+(j+1),tempList(j).getAttribute("FMONEY"));
                                            cnode.setAttribute(
"FCHGMONEY_"+(j+1),tempList(j).getAttribute("FCHGMONEY"));
                                        }
    
                                    
//然后将tempNode节点和tempList中的节点从XmlDomTmp中删除
                                    var tempDelXPath = "//root/PROCOMM_DETAIL";
                                    tempDelXPath 
+= "[@FSCID='" + tempNode.getAttribute("FSCID"+ "'";
                                    tempDelXPath 
+= " and @FPRODUCTID='" + tempNode.getAttribute("FPRODUCTID"+ "']";
                                    
for(j=mtXmllen;j>0;j-- ){
                                        XmlDomTmp.childNodes(
0).removeChild(XmlDomTmp.selectNodes(tempDelXPath)(j-1));
                                        }

                                 }
    
                                
else
                                 
{
                                    
//只处理tempNode
                                    cnode.setAttribute("FSCID",tempNode.getAttribute("FSCID"));
                                    cnode.setAttribute(
"FPRODUCTID",tempNode.getAttribute("FPRODUCTID"));
                                    cnode.setAttribute(
"FPRODUCTNAME",tempNode.getAttribute("FPRODUCTNAME"));
                                    cnode.setAttribute(
"FCTYPE_0",tempNode.getAttribute("FCTYPE"));
                                    cnode.setAttribute(
"FCTYPENAME_0",tempNode.getAttribute("FCTYPENAME"));
                                    cnode.setAttribute(
"FMONEY_0",tempNode.getAttribute("FMONEY"));
                                    cnode.setAttribute(
"FCHGMONEY_0",tempNode.getAttribute("FCHGMONEY"));
                                    
//然后将tempNode节点和tempList中的节点从XmlDomTmp中删除
                                    var tempDelXPath = "//root/PROCOMM_DETAIL";
                                    tempDelXPath 
+= "[@FSCID='" + tempNode.getAttribute("FSCID"+ "'";
                                    tempDelXPath 
+= " and @FPRODUCTID='" + tempNode.getAttribute("FPRODUCTID"+ "']";
                                    
for(j=mtXmllen;j>0;j-- ){
                                        XmlDomTmp.childNodes(
0).removeChild(XmlDomTmp.selectNodes(tempDelXPath)(j-1));
                                        }

                                
                                 }

                            pnode.appendChild(cnode);  
//Append One Child    
                            tempNode = XmlDomTmp.selectSingleNode("//root/PROCOMM_DETAIL");
                         }
 //while结束                
                
                    XmlDomDetail.loadXML(pnode.xml);

posted on 2006-01-14 00:32  e旋风  阅读(1825)  评论(0)    收藏  举报

导航