蛙蛙推荐:利用客户端XSLT样式表转换xml文档
源xml文档和那两个xslt样式表我没有提供哦,大家自己写写算了
<html> <head> <style type="text/css"> body {font-family:Tahoma,Verdana,Arial,sans-serif; font-size:14px} .head {font-family:Tahoma,Verdana,Arial,sans-serif; font-size:18px; font-weight:bold} </style>
<script language="JScript"> <!--
function transformFiles(strStylesheetName) {
// 获取显示转换结果数据层 var objResults = document.all['divResults'];
// 创建两个对象 var objXML = new ActiveXObject('MSXML2.DOMDocument.3.0'); var objXSL = new ActiveXObject('MSXML2.DOMDocument.3.0');
// 设置两个属性 objXML.validateOnParse = true; objXSL.validateOnParse = true;
// 加载xml文档并且检查错误 objXML.load('tables_data.xml'); if (objXML.parseError.errorCode != 0) { // 如果有错误九终止运行并且显示错误 objResults.innerHTML = showError(objXML) return false; }
// 加载样式表并检查错误 objXSL.load(strStylesheetName); if (objXSL.parseError.errorCode != 0) { // 如果有错误就显示错误并终止程序 objResults.innerHTML = showError(objXSL) return false; }
// 如果没有错误,就执行转换 strResult = objXML.transformNode(objXSL);
// 在显示结果层显示转换结果 objResults.innerHTML = strResult; return true; }
function showError(objDocument) { // 创建错误消息 var strError = new String; strError = 'Invalid XML file !<BR />' + 'File URL: ' + objDocument.parseError.url + '<BR />' + 'Line No.: ' + objDocument.parseError.line + '<BR />' + 'Character: ' + objDocument.parseError.linepos + '<BR />' + 'File Position: ' + objDocument.parseError.filepos + '<BR />' + 'Source Text: ' + objDocument.parseError.srcText + '<BR />' + 'Error Code: ' + objDocument.parseError.errorCode + '<BR />' + 'Description: ' + objDocument.parseError.reason return strError; }
//--> </script>
</head> <body onload="transformFiles('tables_list.xsl')"> <p><span class="head">利用客户端XSLT样式表转换xml文档</span></p> 查看详细 <button onclick="transformFiles('tables_catalog.xsl')">目录</button> 或者 <button onclick="transformFiles('tables_list.xsl')">简单列表</button> <hr />
<!-- 这个层里插入xml和xslt的转换结果 --> <div id="divResults"></div>
</body> </html> 
|