我正在使用 xslt 使用 c# 将 xml 转换为 xml。下面是 xslt 的摘录,其中显示了变量分配。
<xsl:variable name="testvar">
<xsl:choose>
<xsl:when test="$condition">
<xsl:value-of select="myUtils:Method1($var1,$var2)" />
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="myUtils:Method2($var1,$var2)" /> <!--Method1 and Method 2 are written in c# code.-->
</xsl:otherwise>
</xsl:choose>
</xsl:variable>
上面的任务与下面的任务不同:
<xsl:variable name="testvar" select="myUtils:Method1($var1,$var2)"/>
另一个变量取决于上述变量,如下所示:
<xsl:variable name="testvar2" select="$testvar/node()[1]/node()[1]/node()[1]/node()[1]"/>
$testvar
当以第二种方式赋值时,这个变量被赋值为期望值。
Method1
和的返回类型Method2
都是XmlDocument
。我认为有什么问题<xsl:value-of>
。分配此变量的正确方法是什么?
更新 我已经通过以下代码解决了这个问题:
<xsl:variable name="testvar"><xsl:copy-of select="myUtils:Method1($var1,$var2)"/></variable>
对于第二个变量,我使用了以下代码:
<xsl:variable name="testvar2" select="msxsl:node-set($testvar)/node()[1]/node()[1]/node()[1]/node()[1]"/>
请参阅此链接了解更多详情。