天下第二博

Tian Xia The Second BO
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

利用客户端XSLT样式表转换xml文档

Posted on 2008-04-17 18:24  Nuke'Blog  阅读(229)  评论(0编辑  收藏  举报

源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>
查看详细 &nbsp; <button onclick="transformFiles(´tables_catalog.xsl´)">目录</button>
&nbsp; 或者 &nbsp; <button onclick="transformFiles(´tables_list.xsl´)">简单列表</button>
<hr />

<!-- 这个层里插入xml和xslt的转换结果 -->
<div id="divResults"></div>

</body>
</html>