运行 a xsl:choose 使用公式的结果
Run a xsl:choose using the result of a formula
正在创建 XSL 以将 XML 翻译成 Excel。其中一部分是在另一个工作表上执行查找的公式。但是,我想 transform/translate return,所以我认为 xsl:choose 最好。
但我不知道如何在 xsl:choose 中引用我的 ss:Formula?
<Cell ss:StyleID="RARs17"
ss:Formula="=INDEX('{$vhostname}'!R2C6:R{$vuln_count+7}C6,MATCH(RC3,'{$vhostname}'!R2C14:R{$vuln_count+7}C14,0))>
<Data ss:Type="String">
<xsl:choose>
<xsl:when test="ss:Formula = 'NF'">Completed</xsl:when>
<xsl:when test="ss:Formula = 'NR'">NR</xsl:when>
<xsl:when test="ss:Formula = 'O'">Ongoing</xsl:when>
<xsl:when test="ss:Formula = 'NA'">NA</xsl:when>
<xsl:otherwise><xsl:value-of select="ss:Formula" /></xsl:otherwise>
</xsl:choose></Data>
</Cell> <!-- Status, looks up Result -->
您不能引用输出树的节点。将公式定义为 变量 并在属性和表达式中使用它。
编辑
我可能误解了你所说的“引用我的 ss:Formula”的意思。如果您想考虑 Excel 执行的实际查找的结果,那是行不通的 - 原因由 Tim C 在他的评论中解释。
但是,您可以使用 key
等 XSLT 方法自行执行查找。
正在创建 XSL 以将 XML 翻译成 Excel。其中一部分是在另一个工作表上执行查找的公式。但是,我想 transform/translate return,所以我认为 xsl:choose 最好。
但我不知道如何在 xsl:choose 中引用我的 ss:Formula?
<Cell ss:StyleID="RARs17"
ss:Formula="=INDEX('{$vhostname}'!R2C6:R{$vuln_count+7}C6,MATCH(RC3,'{$vhostname}'!R2C14:R{$vuln_count+7}C14,0))>
<Data ss:Type="String">
<xsl:choose>
<xsl:when test="ss:Formula = 'NF'">Completed</xsl:when>
<xsl:when test="ss:Formula = 'NR'">NR</xsl:when>
<xsl:when test="ss:Formula = 'O'">Ongoing</xsl:when>
<xsl:when test="ss:Formula = 'NA'">NA</xsl:when>
<xsl:otherwise><xsl:value-of select="ss:Formula" /></xsl:otherwise>
</xsl:choose></Data>
</Cell> <!-- Status, looks up Result -->
您不能引用输出树的节点。将公式定义为 变量 并在属性和表达式中使用它。
编辑
我可能误解了你所说的“引用我的 ss:Formula”的意思。如果您想考虑 Excel 执行的实际查找的结果,那是行不通的 - 原因由 Tim C 在他的评论中解释。
但是,您可以使用 key
等 XSLT 方法自行执行查找。