XSLT 1.0:详细的条件



我给出以下XML,随机数量的" note"元素:

<Notes>
   <Note>
       <Size>400000</Size>
   </Note>
   <Note>
       <Size>200000</Size>
   </Note>
   <Note>
       <Size>500000</Size>
   </Note>
</Notes>

我想检查一下,如果这些音符的尺寸元素中的一个等于或更大,则为500000。如果是这样,我想调用主模板。如果没有,我想做其他事情。

我遇到的问题是:如果我在for-each循环中具有IF-then逻辑,那么我会多次调用模板。由于XSLT中没有断路功能,因此我想使用一个变量,如果满足条件,我将设置为TRUE,如果将模板设置为true,我会称其为" for-east"。但这不是我真正担心的最好的方法,您怎么看?

预先感谢。

不需要for-EAPE循环。像这样的事情将做您想要的事情:

<xsl:template match="Notes">
    <xsl:choose>
        <xsl:when test="number(descendant::Size/text()) &gt; 500000">
        <xsl:call-template name="process Note"/>
        </xsl:when>
        <xsl:otherwise>
        <xsl:call-template name="add attribute to Note"/>
        </xsl:otherwise>
    </xsl:choose>
</xsl:template>

相关内容

  • 没有找到相关文章

最新更新