传递一个变量从.vb文件XSLT - 无需XML [英] passing a variable to XSLT from .vb file - without XML

查看:191
本文介绍了传递一个变量从.vb文件XSLT - 无需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>

请参阅http://msdn.microsoft.com/en-us/library/dfktf882(v=vs.110).aspx?cs-save-lang=1&cs-lang=vb#$c$c-snippet-1一个例子。

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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆