<html> <head> <title></title> </head> <body> <div id="resTree"></div> <FONT face="宋体"></FONT><input type="button" value="执行" onclick="GetXml()"><BR> <script language="JScript"> var srcTree,xsltTree,xt; var http_request = false;
function GetXml() { srcTree = new ActiveXObject("Msxml2.FreeThreadedDOMDocument"); srcTree.async=false; xsltTree= new ActiveXObject("Msxml2.FreeThreadedDOMDocument"); xsltTree.async = false; xt=new ActiveXObject("MSXML2.XSLTemplate"); resTree.innerHTML=""; makeRequest("WebForm1.aspx?sel=xml",GetXml_CB); }
function makeRequest(url,callback) { http_request = false; if (window.XMLHttpRequest) { // Mozilla, Safari,... http_request = new XMLHttpRequest(); if (http_request.overrideMimeType) { http_request.overrideMimeType('text/xml'); } } else if (window.ActiveXObject) { // IE try { http_request = new ActiveXObject("Msxml2.XMLHTTP"); } catch (e) { try { http_request = new ActiveXObject("Microsoft.XMLHTTP"); } catch (e) {} } }
if (!http_request) { alert('Giving up :( Cannot create an XMLHTTP instance'); return false; } http_request.onreadystatechange = callback; http_request.open('GET', url, true); http_request.send(null); }
function GetXml_CB() {
if (http_request.readyState == 4) { if (http_request.status == 200) { srcTree.loadXML(http_request.responseText); makeRequest("WebForm1.aspx?sel=xsl",GetXsl_CB); } else { alert('There was a problem with the request.'); } }
}
function GetXsl_CB(){ if (http_request.readyState == 4) { if (http_request.status == 200) { xsltTree.loadXML(http_request.responseText); xt.stylesheet=xsltTree; var proc=xt.createProcessor(); proc.input=srcTree; proc.transform(); resTree.innerHTML=proc.output; } else { alert('There was a problem with the request.'); } }
}
function makeRequest(url,callback) { http_request = false; if (window.XMLHttpRequest) { // Mozilla, Safari,... http_request = new XMLHttpRequest(); if (http_request.overrideMimeType) { http_request.overrideMimeType('text/xml'); } } else if (window.ActiveXObject) { // IE try { http_request = new ActiveXObject("Msxml2.XMLHTTP"); } catch (e) { try { http_request = new ActiveXObject("Microsoft.XMLHTTP"); } catch (e) {} } }
if (!http_request) { alert('Giving up :( Cannot create an XMLHTTP instance'); return false; } http_request.onreadystatechange = callback; http_request.open('GET', url, true); http_request.send(null); }
</script>
</body> </html>
5.运行工程,看看效果吧!
hello.xml(注意:我的xml文档中并没有指定对应的xsl解析文件名)
<?xml version='1.0'?>
<breakfast-menu> <food> <name>Belgian Waffles</name> <price>$5.95</price> <description>Two of our famous Belgian Waffles with plenty of real maple syrup.</description> <calories>650</calories> </food> <food> <name>Strawberry Belgian Waffles</name> <price>$7.95</price> <description>Light Belgian waffles covered with strawberries and whipped cream.</description> <calories>900</calories> </food> <food> <name>Berry-Berry Belgian Waffles</name> <price>$8.95</price> <description>Light Belgian waffles covered with an assortment of fresh berries and whipped cream.</description> <calories>900</calories> </food> <food> <name>French Toast</name> <price>$4.50</price> <description>Thick slices made from our homemade sourdough bread.</description> <calories>600</calories> </food> <food> <name>Homestyle Breakfast</name> <price>$6.95</price> <description>Two eggs, bacon or sausage, toast, and our ever-popular hash browns.</description> <calories>950</calories> </food> </breakfast-menu> hello.xsl