使用 XSLT1

时间:2021-02-04 08:42:38

标签: xslt-1.0

我已经看到了 here 的答案,但它们不起作用。

我可以使用以下任一方法:

  • <xsl:variable name="AssignHistory" select="document('AssignHistory.xml')"/>
  • <xsl:variable name="AssignHistory" select="document('ForeignAssignHistory.xml')"/>

但我现在需要让它变得动态。所以我尝试了这个,但它不喜欢它:

<xsl:variable name="AssignHistory">
    <xsl:choose>
        <xsl:when test="//Settings/ForeignGroupMode=1">
            <xsl:value-of select="document('ForeignAssignHistory.xml')"/>
        </xsl:when>
        <xsl:otherwise>
            <xsl:value-of select="document('AssignHistory.xml')"/>
        </xsl:otherwise>
    </xsl:choose>
</xsl:variable>

这根本行不通。它说:

<块引用>

对变量或参数“AssignHistory”的引用必须评估为节点列表。


给这个一些背景。这就是我目前所拥有的:

<td class="cellComments" colspan="4">
    <xsl:variable name="AssignHistory" select="document('AssignHistory.xml')"/>
    <xsl:variable name="week" select="Date/@NextWeek"/>
    <xsl:variable name="NextReviewQuestion" select="$AssignHistory/AssignmentHistory/*[name()=$week]/ReviewQuestion"/>
    <xsl:if test="normalize-space($NextReviewQuestion) != ''">
        <xsl:if test="normalize-space(ReviewQuestion) != ''">
            <span class="textReviewQuestionLabel">
                <xsl:value-of select="//Labels/NextReviewQuestion"/>&#160;
            </span>
            <span class="textReviewQuestion">
                <xsl:value-of select="$NextReviewQuestion"/>
            </span>
            <br />
        </xsl:if>
    </xsl:if>
    <br />
    <br />
    <br />
</td>

我想引入选择逻辑来选择正确的文档。

1 个答案:

答案 0 :(得分:1)

也许可以尝试以下操作:

<xsl:variable name="AssignHistoryPath">
    <xsl:choose>
        <xsl:when test="//Settings/ForeignGroupMode=1">ForeignAssignHistory.xml</xsl:when>
        <xsl:otherwise>AssignHistory.xml</xsl:otherwise>
    </xsl:choose>
</xsl:variable>

<xsl:variable name="AssignHistory" select="document($AssignHistoryPath)"/>

未经测试,因为没有提供用于测试的代码。

相关问题