如何排除零值元素-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
的元素。
我有 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
的元素。