我有一个XML,比方说100个元素item
。现在,我想对前10项做一个循环,其中有一个特定的条件。
条件for循环可以如下所示:
<xsl:for-each select="//z:item[@promoted='true' and @prio='true']"> ... </xsl:for-each>
如何仅处理前10个元素?
一个简单的解决办法是:
<xsl:for-each select="//z:item[@promoted='true' and @prio='true']"> <xsl:if test="position < 11"> ... </xsl:if> </xsl:for-each>
但是,这有一个缺点,即循环运行于所有10'000项。如何使for循环包含条件“只有前10项”,以便循环实际上只遍历前10项?
发布于 2019-10-02 14:18:11
符合条件的前10名:
//z:item[@promoted='true' and @prio='true'][11 > position()]
从前十名中只有符合条件的
//z:item[11 > position()][@promoted='true' and @prio='true']
发布于 2019-10-02 14:15:47
您可以将其作为XPATH谓词的一部分,例如:
<xsl:for-each select="//z:item[@promoted='true' and @prio='true'][position() < 11]">
https://stackoverflow.com/questions/58203297
复制相似问题