我试图检查子节点的值,并将其包含在已转换的XML中,只要它的值不是-1。下面是输入xml的示例。
<root>
<a>-1</a>
<b>valid</b>
<c>valid</c>
<d>valid</d>
</root>
XSLT的相关部分:
<xsl:choose>
<xsl:when test="/a != -1">
<xsl:value-of select="*"></xsl:value-of>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="*[not(a)]"></xsl:value-of>
</xsl:otherwise>
</xsl:choose>
允许元素b到c的值为-1,因此我需要特别检查该值的<a>
元素,并且只应排除它。目前我在选择块中执行-1检查,并尝试使用<xsl:value-of select="*[not(a)]"></xsl:value-of>
将其排除。任何帮助表示赞赏。
答案 0 :(得分:1)
如果您使用xsl:apply-templates
使用标准的递归下降处理模型,那么您只需要一个无用的规则
<xsl:template match="a[.=-1]"/>
排除这些元素。
如果您正在使用其他处理模型,则需要向我们展示您的代码。