从.vb文件传递变量到XSLT - 没有XML

时间:2014-12-12 11:14:58

标签: asp.net xml vb.net xslt

如何将常量变量传递给xslt,这里我在xslt中对大学名称进行了硬编码,但我不想这样做,而是想通过那个大学名称" CollegeName&#34 ;作为字符串。

< 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文件

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()

1 个答案:

答案 0 :(得分:1)

为了将参数传递给XSLT样式表,您可以使用XSLTArgumentList

 Dim argList as XsltArgumentList = new XsltArgumentList()

 argList.AddParam("CollegeName", "", "Rowan-cabarrus Comm College")

然后argList用作Transform

调用中的参数
objXSLTransform.Transform(reader, argList, htmlWriter)

在您的XSLT中,您只需要使用xsl:param定义一个对应的参数,该参数应该作为xsl:stylesheet元素的子元素添加

<xsl:param name="CollegeName"/>

您可以使用与$前缀

的任何变量相同的方式使用此方法
<td width='100%' class='subLogo'><xsl:value-of select="$CollegeName" /></td>

有关示例,请参阅http://msdn.microsoft.com/en-us/library/dfktf882(v=vs.110).aspx?cs-save-lang=1&cs-lang=vb#code-snippet-1