我有个想法,不知道能不能实现?

sentiment 2003-07-26 09:31:38
我想在SERVER端从数据库中去数据生成XML文档,然后以已经编写好的XSL文档作为其表现形式。我想把XML文档下到客户端浏览器。然后在把XSL文档也下到浏览器。最后在浏览器里用SCRIPTS分别生成DOM在用下载的XSL转化。怎么实现,能给个详细的简单例子吗?请教了。
...全文
33 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
schq 2003-09-10
  • 打赏
  • 举报
回复
我也收获不少
sentiment 2003-09-09
  • 打赏
  • 举报
回复
LAPMX(E+)理会错我的意思了。我的意思是XML文件一般是保存数据的,但数据在WEB服务器端一般是从数据库里面根据查询条件用SQL语句生成的。比如现在的ASP,所以在WEB服务器端并不存在一个现成的XML文件能让我下到客户端来。如果每次我都在WEB服务器端临时生成一个XML文件,必然要有IO操作。这样就太不划算了。所以我提出了上面的问题。
sentiment 2003-09-08
  • 打赏
  • 举报
回复
还有一个问题,样式一般可以固定为XSL放在外存中。但许多数据是要在内存中动态用SQL从数据库得到的,而不是已经按照格式保存在服务器外存上的XML文件。那我如何能得到包含该动态数据的XML文档呢。难道我必须首先从数据库查询数据,然后写成相应XML文件先保存到外存中,再把该XML文件和xsl文件load到客户端,再生成DOM,再转化吗?这样是不是太麻烦了。有没有什么好的办法直接把从数据库中查询到的数据转化成xml?请指教呀。
lapmx 2003-09-08
  • 打赏
  • 举报
回复
前后加上
<script language=javascript>
</script>
lapmx 2003-09-08
  • 打赏
  • 举报
回复
var xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
xmlDoc.async = false;
xmlDoc.load('XML文件');
// Load the XSL
var xslDoc = new ActiveXObject("Microsoft.XMLDOM");
xslDoc.async = false;
xslDoc.load(XSL文件'');
// Transform
document.write(xmlDoc.transformNode(xslDoc));
lihao9806 2003-07-29
  • 打赏
  • 举报
回复
好像不能用相对路径
sentiment 2003-07-29
  • 打赏
  • 举报
回复
谢谢,有点收获了。不过我还有个疑问。我的javascript是在本地执行的,我用new创建了XML的各种对象后,该对象所引用的xml和xsl文档的路径我应当怎么表示呢?是不是得用url来表示才行呀?能用相对路径表示吗?
sentiment 2003-07-28
  • 打赏
  • 举报
回复
基本能看懂,但还是觉得复杂,不是一个直观的里。我想有没有简单的例子给我看看?
yzssg 2003-07-28
  • 打赏
  • 举报
回复
Module.xml

<?xml version="1.0" encoding="gb2312"?>
<?xml-stylesheet type="Text/xsl" href="Module.xsl"?>
<xml>
<row linkfile="ForumMain" art_de_id="3560" name="课堂论坛"/>
<row linkfile="Data" art_de_id="3561" name="资料室"/>
<row linkfile="Paper" art_de_id="3562" name="检测线"/>
<row linkfile="ForumMain" art_de_id="3563" name="研究园地"/>
<row linkfile="Data" art_de_id="3591" name="资料室2"/>
</xml>

Module.xsl

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format">

<xsl:template match="xml">
<html>
<head>
<meta content="text/html; charset=gb2312" http-equiv="Content-Type"/>
<link rel="stylesheet" href="css/teacher.css" type="text/css"/>
<script language="javascript">
<xsl:comment>
function openWindow(fileName,mID,mName)
{
var o_Xsl;
var o_XslDoc;
var o_Xml;
var o_XslProc;

newWindow=window.open("","","location=no,menubar=no,scrollbars=yes");

o_Xsl = new ActiveXObject("MSXML2.XSLTemplate.3.0");
o_Xml=new ActiveXObject("MSXML2.DOMDocument.3.0");
oXslDoc = new ActiveXObject("MSXML2.FreeThreadedDOMDocument.3.0");

oXslDoc.async = false;
oXslDoc.load(fileName+".xsl");

o_Xsl.stylesheet= oXslDoc;

o_Xml.load(fileName+".xml")
o_XslProc=o_Xsl.createProcessor();
o_XslProc.addParameter("mID",mID);
o_XslProc.addParameter("mName",mName);
o_XslProc.input=o_Xml;

o_XslProc.transform();
sHtmlStr=o_XslProc.output;

newWindow.document.open("text/html","gb2312");
newWindow.document.write(sHtmlStr) ;
}
</xsl:comment>
</script>
</head>
<body>
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<xsl:apply-templates/>
</table>
</body>
</html>
</xsl:template>

<xsl:template match="row">
<tr >
<td align="left" class="small" height="45">
<img src="template/class4/images/menu.gif" border="0" align="absmiddle" WIDTH="19" HEIGHT="14"/>  
<a href="#">
<xsl:attribute name="onclick">openWindow('<xsl:value-of select="@linkfile"/>','<xsl:value-of select="@art_de_id"/>','<xsl:value-of select="@name"/>');</xsl:attribute>
<xsl:value-of select="@name"></xsl:value-of>
</a>
</td>
</tr>
</xsl:template>
</xsl:stylesheet>

chechy 2003-07-26
  • 打赏
  • 举报
回复
可以的,好像Delphibbs就是这么做的
你可以下载
http://www.delphibbs.com/delphibbs/loadxmln.js
参考一下

8,906

社区成员

发帖
与我相关
我的任务
社区描述
XML/XSL相关问题讨论专区
社区管理员
  • XML/XSL社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧