在我的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中声明的变量?如果是这样,怎么样?
答案 0 :(得分:3)
XSLT样式表可以以
的形式提供全局参数<xsl:param name="mnPageId"/>
可以在以编程方式运行XSLT转换之前从样式表外部设置。这是一种可能的方法,将mnPageId
定义为全局样式表参数,运行转换的VB代码然后根据需要进行设置。您可以在MSDN http://msdn.microsoft.com/en-us/library/dfktf882.aspx上阅读有关如何在运行转换时使用.NET代码设置参数的部分。