是否可以使用已在xslt中的vb中声明的变量?

时间:2011-10-13 10:49:19

标签: vb.net xslt

在我的xslt文件中,我想将模板应用于xml,但前提是xml中该内容的id与vb中计算的id匹配。

希望有些代码能让这个更清晰:

<xsl:variable name="ContentparId" select="/Page/descendant::Content/@parId"/>
<xsl:variable name="parIdfromfref" select="mnPageId"/>

<xsl:template match="Page">
    <xsl:if test="$ContentparId = $parIdfromfref">
    <xsl:apply-templates select="/Page" mode="addModule">

ContentparId是xml中Content的属性parId。我想将它与在vb中定义的mnPageId进行比较(传递外部引用并返回与该外部引用匹配的pageId)

我知道剩下的代码会按照我的意愿去做,因为如果我手动更改mnPageId以获得正确的pageId,那么我会得到我想要的xml。

那么,是否可以使用在xslt中的vb中声明的变量?如果是这样,怎么样?

1 个答案:

答案 0 :(得分:3)

XSLT样式表可以以

的形式提供全局参数
<xsl:param name="mnPageId"/>

可以在以编程方式运行XSLT转换之前从样式表外部设置。这是一种可能的方法,将mnPageId定义为全局样式表参数,运行转换的VB代码然后根据需要进行设置。您可以在MSDN http://msdn.microsoft.com/en-us/library/dfktf882.aspx上阅读有关如何在运行转换时使用.NET代码设置参数的部分。