我正在通过xslt创建一个Excel xml工作簿。其中一个日期字段通常为NULL,在这种情况下我不需要在单元格中插入任何内容。目前即使我没有指定任何值,-146087正被输入到单元格中。然后,当单元格为日期格式时,它将显示为哈希值。
我可以在
之间放什么<xsl:otherwise></xsl:otherswise>
标签?
这是xslt ......
<Cell>
<Data ss:Type="DateTime">
<xsl:choose>
<xsl:when test="substring(EOI_StartDate, 0, 11)">
<xsl:value-of select="substring(EOI_StartDate, 0, 11)"/>
</xsl:when>
<xsl:otherwise>
</xsl:otherwise>
</xsl:choose>
</Data>
<NamedCell ss:Name="_FilterDatabase"/>
</Cell>
答案 0 :(得分:1)
从你的问题看来,你想要制作:
<Data/>
在条件未满足的情况下。
最简单的方法是不使用<xsl:choose>
,而是使用更简单的<xsl:if>
:
<Data ss:Type="DateTime">
<xsl:if test="substring(EOI_StartDate, 0, 11)">
<xsl:value-of select="substring(EOI_StartDate, 0, 11)"/>
</xsl:if>
</Data>
或者,如果您想在不满足条件时完全省略<Data>
元素,则:
<xsl:if test="substring(EOI_StartDate, 0, 11)">
<Data ss:Type="DateTime">
<xsl:value-of select="substring(EOI_StartDate, 0, 11)"/>
</Data>
</xsl:if>
最后,如果<Data>
元素必须保留在那里,但如果不满足条件,则不希望将其视为日期,请执行以下操作:
<xsl:choose>
<xsl:when test="substring(EOI_StartDate, 0, 11)">
<Data ss:Type="DateTime">
<xsl:value-of select="substring(EOI_StartDate, 0, 11)"/>
</Data>
</xsl:when>
<xsl:otherwise>
<Data ss:Type="String"> </Data>
</xsl:otherwise>
</xsl:choose>