我正在将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。
我还希望在值&lt;时隐藏VFDAT。 1。
我该怎么做?
<Product>
<OrderLineNo>000010</OrderLineNo>
<ProductDescription>BARBER'S CATALOGUE</ProductDescription>
<ProductCode>000000000030199850</ProductCode>
<QuantityDelivered>20.000</QuantityDelivered>
<SalesUnit>EA</SalesUnit>
<ExpiryDate>00000000</ExpiryDate>
</Product>
谢谢。
答案 0 :(得分:1)
尝试将其作为,
如果您使用的是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>