蛙蛙推荐:利用客户端XSLT样式表转换xml文档
源xml文档和那两个xslt样式表我没有提供哦,大家自己写写算了
1<html>
2<head>
3<style type="text/css">
4body {font-family:Tahoma,Verdana,Arial,sans-serif; font-size:14px}
5.head {font-family:Tahoma,Verdana,Arial,sans-serif; font-size:18px; font-weight:bold}
6</style>
7<script language="JScript">
8<!--
9
10function transformFiles(strStylesheetName) {
11
12// 获取显示转换结果数据层
13var objResults = document.all['divResults'];
14
15// 创建两个对象
16var objXML = new ActiveXObject('MSXML2.DOMDocument.3.0');
17var objXSL = new ActiveXObject('MSXML2.DOMDocument.3.0');
18
19// 设置两个属性
20objXML.validateOnParse = true;
21objXSL.validateOnParse = true;
22
23// 加载xml文档并且检查错误
24objXML.load('tables_data.xml');
25if (objXML.parseError.errorCode != 0) {
26// 如果有错误九终止运行并且显示错误
27objResults.innerHTML = showError(objXML)
28return false;
29}
30
31// 加载样式表并检查错误
32objXSL.load(strStylesheetName);
33if (objXSL.parseError.errorCode != 0) {
34// 如果有错误就显示错误并终止程序
35objResults.innerHTML = showError(objXSL)
36return false;
37}
38
39// 如果没有错误,就执行转换
40strResult = objXML.transformNode(objXSL);
41
42// 在显示结果层显示转换结果
43objResults.innerHTML = strResult;
44return true;
45}
46
47function showError(objDocument) {
48// 创建错误消息
49var strError = new String;
50strError = 'Invalid XML file !<BR />'
51\+ 'File URL: ' + objDocument.parseError.url + '<BR />'
52\+ 'Line No.: ' + objDocument.parseError.line + '<BR />'
53\+ 'Character: ' + objDocument.parseError.linepos + '<BR />'
54\+ 'File Position: ' + objDocument.parseError.filepos + '<BR />'
55\+ 'Source Text: ' + objDocument.parseError.srcText + '<BR />'
56\+ 'Error Code: ' + objDocument.parseError.errorCode + '<BR />'
57\+ 'Description: ' + objDocument.parseError.reason
58return strError;
59}
60
61//-->
62</script>
63</head>
64<body onload="transformFiles('tables_list.xsl')">
65<p><span class="head">利用客户端XSLT样式表转换xml文档</span></p>
66查看详细 <button onclick="transformFiles('tables_catalog.xsl')">目录</button>
67 或者 <button onclick="transformFiles('tables_list.xsl')">简单列表</button>
68<hr/>
69<!-- 这个层里插入xml和xslt的转换结果 -->
70<div id="divResults"></div>
71</body>
72</html>