收录日期:2018/09/20 23:24:54 时间:2016/05/18 06:54:42 标签:XML/XSL

我从页面表单获取一个值,username=request("username")
然后我要在xml文档中找到用户名=username的其它信息
这就要在XSL中定义变量,将username的值赋给它,并引用它,请问,这个过程该如何来实现??

<预订 date="3/25/2003">
<订单号>20030325-124536</订单号>
<用户名>wangxiaoli</用户名>
<商品>
<音乐编号>CD-1023</音乐编号>
<专辑名>盛夏的果实</专辑名>
<价格>49.99</价格>
<数量>1</数量>
</商品>
<收件人>
<收件人姓名>王晓莉</收件人姓名>
<详细地址>武汉理工大学327信箱</详细地址>
<邮政编码>430063</邮政编码>
<收件人电话>1212121</收件人电话>
</收件人>
<付款方式>信用卡</付款方式>
<备注>10天内寄到!急!</备注>
</预订>


<xsl:template match="预订">
<tr>
<td><xsl:value-of select="用户名"/></td>
<td><xsl:value-of select="订单号"/></td>
<td><xsl:value-of select="商品/音乐编号"/></td>
<td><xsl:value-of select="商品/价格"/></td>
<td><xsl:value-of select="收件人/收件人姓名"/></td>
<td><xsl:value-of select="数量"/></td>
<td><xsl:value-of select="付款方式"/></td>
</tr>
</xsl:template>
eg:

test.asp:
<%@ Language=VBScript %>
<HTML>
<HEAD>
<META NAME="GENERATOR" Content="Microsoft Visual Studio 6.0">
</HEAD>
<BODY>

<%
dim xmldoc,xmlTempdoc

username="ssm1226"

set xmldoc=server.CreateObject("msxml2.domdocument")
xmldoc.async=false
xmldoc.load server.MapPath("test.xml")

dim objTransform
set objTransform=server.CreateObject("msxml2.FreeThreadedDomDocument")
objTransform.load server.MapPath("test.xsl")

dim objTemplate
set objTemplate=server.CreateObject("msxml2.XSLTemplate")
set objTemplate.stylesheet=objTransform

dim objProcessor 
set objProcessor=objTemplate.createProcessor
objProcessor.input=xmldoc
objprocessor.addParameter "username",username
objProcessor.transform

dim strReport
strReport=objProcessor.output

Response.ContentType="text/html"

Response.Write strReport
set objProcessor=nothing
set objTemplate=nothing
set xmldoc=nothing
%>
</BODY>
</HTML>


test.xml:
<?xml version='1.0' encoding='gb2312'?>
<root>
<预订 date="3/25/2003">
<订单号>20030325-124536</订单号>
<用户名>wangxiaoli</用户名>
<商品>
<音乐编号>CD-1023</音乐编号>
<专辑名>盛夏的果实</专辑名>
<价格>49.99</价格>
<数量>1</数量>
</商品>
<收件人>
<收件人姓名>王晓莉</收件人姓名>
<详细地址>武汉理工大学327信箱</详细地址>
<邮政编码>430063</邮政编码>
<收件人电话>1212121</收件人电话>
</收件人>
<付款方式>信用卡</付款方式>
<备注>10天内寄到!急!</备注>
</预订>
<预订 date="3/25/2003">
<订单号>20030325-124536</订单号>
<用户名>ssm1226</用户名>
<商品>
<音乐编号>CD-1023</音乐编号>
<专辑名>盛夏的果实</专辑名>
<价格>49.99</价格>
<数量>1</数量>
</商品>
<收件人>
<收件人姓名>雨中人</收件人姓名>
<详细地址>武汉理工大学327信箱</详细地址>
<邮政编码>430063</邮政编码>
<收件人电话>1212121</收件人电话>
</收件人>
<付款方式>信用卡</付款方式>
<备注>10天内寄到!急!</备注>
</预订>
</root>

test.xsl:

<?xml version='1.0' encoding="gb2312"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:param name="username" select="''"/>
<xsl:template match="/">
<xsl:apply-templates select="root/预订[用户名=$username]"/>
</xsl:template>
<xsl:template match="预订">
<table>
<tr>
<td><xsl:value-of select="用户名"/></td>
<td><xsl:value-of select="订单号"/></td>
<td><xsl:value-of select="商品/音乐编号"/></td>
<td><xsl:value-of select="商品/价格"/></td>
<td><xsl:value-of select="收件人/收件人姓名"/></td>
<td><xsl:value-of select="数量"/></td>
<td><xsl:value-of select="付款方式"/></td>
</tr>
</table>
</xsl:template>
</xsl:stylesheet>
试过好多次了,还是显示不出来,什么也没有
好了,可以显示了,谢谢你!!