以文本方式查看主题 - 中文XML论坛 - 专业的XML技术讨论区 (http://bbs.xml.org.cn/index.asp) -- 『 XSL/XSLT/XSL-FO/CSS 』 (http://bbs.xml.org.cn/list.asp?boardid=8) ---- 求教,页面参数传递的问题 (http://bbs.xml.org.cn/dispbbs.asp?boardid=8&rootid=&id=10562) |
-- 作者:Nina -- 发布时间:9/24/2004 12:09:00 PM -- 求教,页面参数传递的问题 求教,我从一个页面传出一个参数id,然后用一个ASP文件接收到了这个参数,我想问的是用这个接收到的参数怎样去判定负责输出的XSL内容? 接收参数的页面我是用ASP关联xml和xsl来生成的。xml是数据库,xsl选择输出内容。 怎么弄?请高手赐教 ASP文件 <% Dim objXML Dim objXSL '实例化 XMLDOM 对象,以便载入 XML 文件。 set objXML = Server.CreateObject("Microsoft.XMLDOM") '关掉文件异步载入模式。 objXML.async = false a=server.mappath("\") & "\project\data\data.xml" b=server.mappath("\") & "\project\produce\xsl\show\show.xsl" '载入 XML 文件! objXML.load(a) '实例化 XMLDOM 对象,以便载入 XSL 文件。 set objXSL = Server.CreateObject("Microsoft.XMLDOM") '关掉文件异步载入模式。 objXSL.async = false '载入 XSL 文件! objXSL.load(b) '利用 XMLDOM 的 transformNode 方法,把 XSL 样式表应用到 XML 文档,然后输出到客户端。 Response.Write(objXML.transformNode(objXSL)) id = Request.Querystring("id") ‘id是另一个页面传递过来的参数 %> XSL文件如下: <?xml version="1.0" encoding="gb2312" ?> <xsl:stylesheet xmlns:xsl="http://www.w3.org/TR/WD-xsl"> <xsl:template match="/"> <html> <meta http-equiv="Content-Type" content="text/html; charset=gb2312" /> <body> <table border="0" cellpadding="1"> <tr align="center"> <td>序号</td> <td>产品名称</td> <td>型号</td> <td>等级</td> <td>规格</td> <td>功能</td> <td>备注</td> </tr> <xsl:for-each select="root/produce1/jingzhi/chanping"> <tr align="center"> <td><xsl:value-of select="@id"/></td> <td><xsl:value-of select="pname"/></td> <td><xsl:value-of select="type"/></td> <td><xsl:value-of select="class"/></td> <td><xsl:value-of select="spec"/></td> <td><xsl:value-of select="fuction"/></td> <td><xsl:value-of select="memo"/></td> </tr> </xsl:for-each> </table> </body> </html> </xsl:template> </xsl:stylesheet> ASP得到的参数值怎么样给XSL做判断呢?? |
-- 作者:doubleG -- 发布时间:9/24/2004 8:58:00 PM -- 可以用javascript修改xsl中的参数,再进行transform。很多xml+xsl动态排序的例子就是这样做的,你可以到网上找一些例子。他们就是动态修改了其中要sort的内容,再进行解析。因为是修改客户端内存里的东西所以不用担心服务器端的xsl文件。 |
-- 作者:Nina -- 发布时间:9/24/2004 10:42:00 PM -- 能举个例子吗??? |
-- 作者:doubleG -- 发布时间:9/25/2004 2:13:00 PM -- 还是直接用asp吧,呵呵用xslprocessor xmlDoc =Server.CreateObject("MSXML2.DOMDocument") xmlDoc.async = false xslDoc = Server.CreateObject("MSXML2.FreeThreadedDOMDocument") xslDoc.async = false xmlDoc.load("XML/"+fileName) xslDoc.load("XSLT/"+xsltFile) xslTemplate = Server.CreateObject("MSXML2.XSLTemplate") xslTemplate.stylesheet = xslDoc xslProc = xslTemplate.createProcessor() xslProc.input = xmlDoc Call xslProc.addParameter("EmpId", "1") Call xslProc.Transform XSL文件的开头要加上: <xsl:stylesheet.....> <xsl:param name="EmpId"/> 就传入了参数了 中间写的可能有点问题,写的时候如果那里不对可以查一下相关资料。
[此贴子已经被作者于2004-9-25 18:01:17编辑过]
|
W 3 C h i n a ( since 2003 ) 旗 下 站 点 苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》 |
46.875ms |