传递一个变量从.vb文件XSLT - 无需XML [英] passing a variable to XSLT from .vb file - without XML
问题描述
如何通过不断的变量,XSLT,在这里我很难codeD在XSLT学院的名字,但我不想这样做,而不是这样我想传递的大学名称CollegeName作为字符串。
< XSL:模板匹配=/>
<的xsl:for-每个选择=分析>
< HTML和GT;
<身体GT;
<表>
&所述; TR>
< TD WIDTH =100%类='subLogo'>罗恩 - 卡巴吕通讯学院与LT; / TD>
< / TR>
< /表>
< /身体GT;
< / HTML>
< /的xsl:for-每个>
< / XSL:模板>
.vb文件
暗淡CollegeName作为常数=罗文 - 卡巴吕通信学院
昏暗阅读器作为新的XmlTextReader(新System.IO.StringReader(的xmlString))
reader.Read()
昏暗objXSLTransform作为新XslCompiledTransform()
objXSLTransform.Load(xsltFilePath)
昏暗htmlOutput作为新的StringBuilder()
昏暗的HTMLWriter作为的TextWriter =新的StringWriter(htmlOutput)
objXSLTransform.Transform(读卡器,没什么,的HTMLWriter)
reader.Close()
返回htmlOutput.ToString()
为了将参数传递给XSLT样式表可以使用的的XsltArgumentList
暗淡作为ARGLIST =的XsltArgumentList新的XsltArgumentList() argList.AddParam(CollegeName,,罗文-卡巴吕通信学院)
然后 ARGLIST
被用作调用的参数为变换
objXSLTransform.Transform(读卡器,ARGLIST,的HTMLWriter)
而在你的XSLT,你只需要使用 XSL来定义对应的参数:参数
,它应该被添加为 XSL的子:样式
元素
< XSL:PARAM NAME =CollegeName/>
您可以用同样的方式与任何变量使用,使用 $
preFIX
< TD WIDTH =100%类='subLogo'><的xsl:value-of的选择=$ CollegeName/>< / TD>
How to pass the constant variable to xslt , here I hard coded the college name in the xslt, but I don't want to do that way instead I want to pass that college name "CollegeName" as string.
< xsl: template match="/">
< xsl:for-each select="Analysis">
<html>
<body>
<table>
<tr>
<td width='100%' class='subLogo'>Rowan-cabarrus Comm College</td>
</tr>
</table>
</body>
</html>
</xsl:for-each>
</xsl:template>
.VB file
Dim CollegeName as Constant = Rowan-cabarrus Comm College
Dim reader As New XmlTextReader(New System.IO.StringReader(xmlstring))
reader.Read()
Dim objXSLTransform As New XslCompiledTransform()
objXSLTransform.Load(xsltFilePath)
Dim htmlOutput As New StringBuilder()
Dim htmlWriter As TextWriter = New StringWriter(htmlOutput)
objXSLTransform.Transform(reader, Nothing, htmlWriter)
reader.Close()
Return htmlOutput.ToString()
In order to pass parameters to an XSLT stylesheet you can use the XSLTArgumentList
Dim argList as XsltArgumentList = new XsltArgumentList()
argList.AddParam("CollegeName", "", "Rowan-cabarrus Comm College")
Then the argList
is used as a parameter in the call to Transform
objXSLTransform.Transform(reader, argList, htmlWriter)
And in your XSLT, you just need to define a correspond parameter using xsl:param
, which should be added as a child of the xsl:stylesheet
element
<xsl:param name="CollegeName"/>
You can use this in the same way as any variable, with the $
prefix
<td width='100%' class='subLogo'><xsl:value-of select="$CollegeName" /></td>
See http://msdn.microsoft.com/en-us/library/dfktf882(v=vs.110).aspx?cs-save-lang=1&cs-lang=vb#code-snippet-1 for an example.
这篇关于传递一个变量从.vb文件XSLT - 无需XML的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!