以文本方式查看主题

-  中文XML论坛 - 专业的XML技术讨论区  (http://bbs.xml.org.cn/index.asp)
--  『 XML基础 』  (http://bbs.xml.org.cn/list.asp?boardid=1)
----  xml中动态调用xsl样式单  (http://bbs.xml.org.cn/dispbbs.asp?boardid=1&rootid=&id=6469)


--  作者:whf333
--  发布时间:4/5/2004 5:15:00 PM

--  xml中动态调用xsl样式单
请教各位,我想实现同一xml文件调用不同的xsl样式单,同样的内容得到不同的显示效果,用什么方法可以将xsl文件动态的引用。
目前我只能用静态的方法,同一xml文件拷贝两份,分别嵌入不同的样式单,这样很“浪费空间”!
--  作者:diegor
--  发布时间:4/5/2004 5:34:00 PM

--  
写两个xls文件,然后根据情况调用就可以!样式表最好不要直接写在xml里!
--  作者:孤独
--  发布时间:4/5/2004 6:16:00 PM

--  
完全可以用javascript进行转换,也可以在服务端进行
<%

'Load the XML
set xml = Server.CreateObject("Microsoft.XMLDOM")
xml.async = false
xml.resolveExternals =False
xml.setProperty "ServerHTTPRequest", true
Response.Write request.ServerVariables("URL")
xml.load("http://127.0.0.1/main.asp")
'Load the XSL
set xsl = Server.CreateObject("Microsoft.XMLDOM")
xsl.async = false
xsl.resolveExternals =False
xsl.load(Server.MapPath("template/Main/main.xsl"))

'xml.transformNodeToObject xsl,Response
set xslt=nothing
set xsldoc=nothing
set xmldoc=nothing
%>
//-------------------------------------------------------------
// Load XML
var xml = new ActiveXObject("Microsoft.XMLDOM")
xml.async = false
xml.load(xml名称)
// Load the XSL
var xsl = new ActiveXObject("Microsoft.XMLDOM")
xsl.async = false
xsl.load("xsl名称“)
// Transform
return(xml.transformNode(xsl))
//-------------------------------------------------------------


--  作者:whf333
--  发布时间:4/6/2004 8:16:00 AM

--  
谢谢你们的指点,我做的是在客户端实现xml的显示,所以我想用调用“不同样式单”的方法。
能否具体的介绍一下调用的方法,谢谢?
--  作者:faly
--  发布时间:4/6/2004 8:55:00 AM

--  
偶有那部分的代码
是用js调用的
但需要用户自己选择
暂时没办法发
--  作者:whf333
--  发布时间:4/6/2004 10:03:00 AM

--  
能否介绍有相关例子的网站?
--  作者:小鞋子
--  发布时间:4/6/2004 10:22:00 AM

--  
以下是引用faly在2004-4-6 8:55:38的发言:
偶有那部分的代码
是用js调用的
但需要用户自己选择
暂时没办法发

發上來啊...大夥一起研究一下.


--  作者:diegor
--  发布时间:4/6/2004 10:31:00 AM

--  
以下是引用whf333在2004-4-6 8:16:48的发言:
谢谢你们的指点,我做的是在客户端实现xml的显示,所以我想用调用“不同样式单”的方法。
能否具体的介绍一下调用的方法,谢谢?

殊途同归!


--  作者:faly
--  发布时间:4/6/2004 11:56:00 AM

--  
好的,我回去了就发:)
--  作者:小鞋子
--  发布时间:4/6/2004 12:06:00 PM

--  
1.

你在哪啊..怎麽還沒回去啊?

要吃飯了哦.


--  作者:faly
--  发布时间:4/6/2004 12:09:00 PM

--  
不怕的啊
我在网吧玩一会回去啊
那个代码很简单的啊
不知道能不能解决楼主的问题
到时候就跟在这个帖子后面啊
--  作者:faly
--  发布时间:4/6/2004 12:28:00 PM

--  

是html加载



--  作者:小鞋子
--  发布时间:4/6/2004 3:44:00 PM

--  
student.htm

<html>
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
</head>
<body bgcolor="#FFFFFF">

<!--下面提交表单,包含浏览者选择身份的下拉菜单,和点击后执行choose()函数的按钮-->
<form name="whoami"  >
  <div align="center">
    <p><font color="#999999"><b><font size="5">在线测试系统</font></b></font></p>
    <p><font size="4" face="Courier New, Courier, mono" color="#CCCCCC"><b><font

color="#666666">选择你的身份后,点击按钮</font></b></font>
    </p>
  </div>
  <p align="center">
<!--下拉菜单-->
    <select name="sele" onChange="choose()">
      <option value="1">我是学生</option>
      <option value="2">我是老师</option>
      <option value="3">我是访客</option>
</select>
  </p>
</form>

<span id="c1" name="c1">數據加載中。。</span>
<script language="javascript">
function choose()
{
<!--读入试题库-->
var xml = new ActiveXObject("Microsoft.XMLDOM");
xml.async = false;
xml.load("question.xml");
<!--创建XSL样式单的DOM对象-->
var xsl = new ActiveXObject("Microsoft.XMLDOM");
xsl.async = false;      
<!--who取得浏览者的选择结果,即下拉菜单中的选项-->
var who=document.whoami.sele.value;
<!--判断who的取值,决定浏览者的身份,调用不同的样式单显示-->
switch(who){
<!--swho为“1”时,浏览者选择学生,调用student.xsl-->
case "1":
xsl.load("student.xsl");

break;
<!--swho为“2”时,浏览者选择教师,调用teacher.xsl-->
case"2":
xsl.load("teacher.xsl");
break;
<!--swho为“3”时,浏览者选择访客,调用customer.xsl-->
case"3":
xsl.load("customer.xsl");
break;
default:
xsl.load("customer.xsl")
//默認的
        }
<!--调用transformNode()方法格式化试题库,并显示-->
c1.innerHTML=(xml.transformNode(xsl));
}
choose();
</script>

</body>
</html>

我改进了一下.:)


--  作者:xmlelang
--  发布时间:4/6/2004 5:01:00 PM

--  
我觉得这样不好,应该采用xsl来控制样式
--  作者:GONEWITHWATER
--  发布时间:4/6/2004 5:51:00 PM

--  
问的好。我也想知道
--  作者:whf333
--  发布时间:4/8/2004 3:22:00 PM

--  
以下是引用faly在2004-4-6 11:56:45的发言:
好的,我回去了就发:)


怎么还不发呀!
急。。。。。。。。。。。。
--  作者:GONEWITHWATER
--  发布时间:4/8/2004 3:51:00 PM

--  
不是已经发了吗?第12楼,13楼
--  作者:小鞋子
--  发布时间:4/8/2004 4:27:00 PM

--  
以下是引用xmlelang在2004-4-6 17:01:56的发言:
我觉得这样不好,应该采用xsl来控制样式


现在本身就是用XSL来控制的啊


--  作者:锋划雪月
--  发布时间:4/8/2004 5:26:00 PM

--  
欧哟,版主大聚会啊,到底有多少版主啊!
--  作者:Honeymaster
--  发布时间:4/9/2004 8:03:00 AM

--  
晕.学xml还要学这么多东东呀?
javascript我只懂了点皮毛,是不是学好xml就没希望了?
是不是要先学javascript?
--  作者:whf333
--  发布时间:4/9/2004 9:42:00 AM

--  
以下是引用faly在2004-4-6 11:56:45的发言:
好的,我回去了就发:)


怎么还不发呀?急。。。。。。。。。。。。。
--  作者:matida
--  发布时间:11/14/2005 1:49:00 PM

--  
哦hoho, 动态转换真麻烦-
--  作者:厦门乞丐
--  发布时间:11/17/2005 5:47:00 PM

--  
呵呵,长见识啊
--  作者:一条辉
--  发布时间:2/9/2006 4:14:00 PM

--  
是麻烦呢   有没有简单的法子啊? 比如用些函数?
W 3 C h i n a ( since 2003 ) 旗 下 站 点
苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》
109.985ms