接收XML数据并使用XSL样式表进行格式化

        今天的一天时间都花费在实现XML数据的接收以及XSL-样式表的格式化,当然这些工作在IE上面都是很容易的事情。可是挪移到FireFox上的时候,一切就没有那么美妙了。:))
        必须实现脚本的跨越浏览器功能。上午吃饭前找到资料,在自己手写还是使用开源框架方面产生了冲突,最终采用在资料的基础上改写,这样的代码量不大。
        下面就是封装好的JS函数,只是暂时可以在Firefox,IE上面通用,测试只是小范围而已。这个函数就是为了程序使用,所以就这么写了......

    /*
    xml:可以提供给XML数据的连接或者文件
    xsl:样式表或者样式表的连接
    div:层-DIV的ID
    result:xsl文件解析xml的结果写入到div中
    
*/  
    function showXml( xml, xsl, div ){
    
if (window.ActiveXObject) {
             IEXml( xml, xsl, div );
    }
    
//Para funcionar no Mozilla/Firefox
    else if(window.XMLHttpRequest) {
            FireXml( xml, xsl, div );
    }
}


function IEXml( xml, xsl, div ){
            var objeXml;
            var objeXsl;
            var objeXml 
= new ActiveXObject("Microsoft.XMLDOM");
            objeXml.async 
= false;
            objeXml.load( xml );
            var objeXsl 
= new ActiveXObject("Microsoft.XMLDOM");
            objeXsl.async 
= false;
            objeXsl.load( xsl );
            var theDiv 
= document.getElementById( div );
            theDiv.innerHTML 
= objeXml.transformNode(objeXsl);
}

function FireXml( xml, xsl, div ){
            var objeXSLTProcessor;
            var objeXmlDoc;
            var objeXSLT;            
            var objeXml;
            var objeXsl;
            objeXSLTProcessor 
= new XSLTProcessor();
            objeXsl 
= new XMLHttpRequest();
            objeXsl.open(
"GET", xsl, false);
            objeXsl.send(
null);            
            objeXSLT 
= objeXsl.responseXML;
            
            objeXSLTProcessor.importStylesheet(objeXSLT);

            objeXml 
= new XMLHttpRequest();
            
            objeXml.open(
"GET", xml, true );
            objeXml.send(
null);    
            objeXmlDoc 
= (new DOMParser()).parseFromString( objeXml.responseText, "text/xml");
            var tvs 
= objeXSLTProcessor.transformToFragment(objeXmlDoc, document);
            var theDiv 
= document.getElementById( div );
            div.innerHTML 
= "";
            theDiv.appendChild( tvs );
}  

 

 

 

posted on 2006-03-23 20:22  yongboy  阅读(1287)  评论(0编辑  收藏  举报

导航