XSLT - 如果值 =“000000”,则不显示标签

XSLT - Don't display a tag if value = "000000"

我正在将 SAP IDOC 转换为更易于阅读的 XML 格式。

我有下面的 XSLT,它隐藏了空值(CHARG、VFDAT)

<Product>
        <OrderLineNo><xsl:value-of select="VGPOS"/></OrderLineNo>
        <ProductDescription><xsl:value-of select="ARKTX"/></ProductDescription>
        <ProductCode><xsl:value-of select="MATNR"/></ProductCode>
        <xsl:if test="EAN11">
            <Barcode><xsl:value-of select="EAN11"/></Barcode>
        </xsl:if>
        <QuantityDelivered><xsl:value-of select="LFIMG"/></QuantityDelivered>
        <SalesUnit><xsl:value-of select="VRKME"/></SalesUnit>
        <xsl:if test="CHARG">
            <Batch><xsl:value-of select="CHARG"/></Batch>
        </xsl:if>
        <xsl:if test="VFDAT">
            <ExpiryDate><xsl:value-of select="VFDAT"/></ExpiryDate>
        </xsl:if>
    </Product>

这会得到下面的 XML 输出,它隐藏了源 XML 文档中不存在的 VFDAT 和 EAN11。

我还想在值 < 1 时隐藏 VFDAT。

我该怎么做?

<Product>
 <OrderLineNo>000010</OrderLineNo>
 <ProductDescription>BARBER'S CATALOGUE</ProductDescription>
 <ProductCode>000000000030199850</ProductCode>
 <QuantityDelivered>20.000</QuantityDelivered>
 <SalesUnit>EA</SalesUnit>
 <ExpiryDate>00000000</ExpiryDate>
</Product>

谢谢。

尝试这样做,

如果您使用的是 XSLT 2.0,那么以下内容应该有效,

<xsl:if test="VFDAT gt 0">
    <ExpiryDate><xsl:value-of select="VFDAT"/></ExpiryDate>
</xsl:if>

如果 XSLT 1.0,

<xsl:if test="VFDAT &gt; 0">
    <ExpiryDate><xsl:value-of select="VFDAT"/></ExpiryDate>
</xsl:if>

<xsl:if test="VFDAT > 0">
    <ExpiryDate><xsl:value-of select="VFDAT"/></ExpiryDate>
</xsl:if>