我是 XSLT 的新手,我正在使用 w3schools“自己尝试”页面进行一些测试。我正在使用以下演示:
http://www.w3schools.com/xsl/tryxslt.asp?xmlfile=cdcatalog&xsltfile=tryxsl_choose
这包含以下行:
<xsl:for-each select="catalog/cd">
我正在测试过滤呈现的 HTML,position()
但在使用<
操作数时遇到问题。
我尝试了以下方法:
<xsl:for-each select="catalog/cd[position()=1]">
这将返回 XML 数据中的第一项(如预期的那样)。
然后我尝试了:
<xsl:for-each select="catalog/cd[position()<5]">
我期待这会返回前 4 个项目,但我没有得到任何结果。
我的猜测是,也许position()=1
正在做一个字符串比较,这就是为什么它返回第一项,但它不能理解position()<5
为一个字符串不能以这种方式进行比较?
为什么会发生这种情况,获得我希望达到的结果的正确语法是什么?
更新:在阅读@joocer 的回复并自己测试后,使用>
操作数确实有效,但结果相反:
<xsl:for-each select="catalog/cd[(position()>5)]">