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 > 0">
<ExpiryDate><xsl:value-of select="VFDAT"/></ExpiryDate>
</xsl:if>
或
<xsl:if test="VFDAT > 0">
<ExpiryDate><xsl:value-of select="VFDAT"/></ExpiryDate>
</xsl:if>
我正在将 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 > 0">
<ExpiryDate><xsl:value-of select="VFDAT"/></ExpiryDate>
</xsl:if>
或
<xsl:if test="VFDAT > 0">
<ExpiryDate><xsl:value-of select="VFDAT"/></ExpiryDate>
</xsl:if>