如何排除零值元素-XSLT?

How to exclude elements with zero values -XSLT?

我有 100 多个元素的列表,我正在为其映射。我想检查每个元素是否包含任何“0”值。如果它包含零值,那么我应该从该输入文档中曾经出现的输出中删除该特定元素。 这是我下面的示例 xml:

<xml>
<xmls>
<A>0.00</A>
<B>0</B>
<C>123</C>
</xmls>
</xml>

我将元素的值存储在一个变量中,并在我的 xslt 中为每个元素这样写:

<xsl:if test="string-length($C) > 0">
<Z>123</Z>
</xsl:if>

我也试过:

<xsl:template match="xmls[not(string()]"/>

很难将此条件写入每个元素,是否有其他方法可以对整个文档执行此操作?

使用

  <xsl:template match="@* | node()">
    <xsl:copy>
      <xsl:apply-templates select="@* | node()"/>
    </xsl:copy>
  </xsl:template>

  <xsl:template match="*[not(*) and . = 0]"/>

如果要删除所有具有数值 0 的元素。