如何排除具有零值的元素-XSLT?
Posted
技术标签:
【中文标题】如何排除具有零值的元素-XSLT?【英文标题】:How to exclude elements with zero values -XSLT? 【发布时间】:2021-10-23 16:13:31 【问题描述】:我有 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()]"/>
很难把这个条件写到每一个元素上,他们还有其他方法可以为整个文档做到这一点吗?
【问题讨论】:
【参考方案1】:使用
<xsl:template match="@* | node()">
<xsl:copy>
<xsl:apply-templates select="@* | node()"/>
</xsl:copy>
</xsl:template>
<xsl:template match="*[not(*) and . = 0]"/>
如果你想删除所有具有数值0
的元素。
【讨论】:
以上是关于如何排除具有零值的元素-XSLT?的主要内容,如果未能解决你的问题,请参考以下文章
XSLT:XML 第一个属性需要转换为具有第二个属性值的元素
使用 xslt 2.0 合并具有相同父属性值的元素的 xml 内容