Xslt 位置()=1工作正常,但不是位置()<;5.

Xslt 位置()=1工作正常,但不是位置()<;5.,xslt,foreach,Xslt,Foreach,我是XSLT新手,我正在使用W3C“自己尝试”页面进行一些测试。我正在使用以下演示: 其中包含以下行: <xsl:for-each select="catalog/cd"> 这将返回XML数据中的第一项(如预期的那样) 然后我试着: <xsl:for-each select="catalog/cd[position()<5]"> 我不知道为什么,但是反转条件是有效的,所以不要寻找少于5个,而要寻找不超过4个 <xsl:for-each select="

我是XSLT新手,我正在使用W3C“自己尝试”页面进行一些测试。我正在使用以下演示:

其中包含以下行:

<xsl:for-each select="catalog/cd">
这将返回XML数据中的第一项(如预期的那样)


然后我试着:

<xsl:for-each select="catalog/cd[position()<5]">

我不知道为什么,但是反转条件是有效的,所以不要寻找少于5个,而要寻找不超过4个

<xsl:for-each select="catalog/cd[not(position()>4)]">


即使在引号内,也必须键入
它看起来很像w3schools正在使用的libxslt版本中的一个bug。

这似乎也不起作用:S
。尝试编辑以下内容,它将返回0个奇数结果。我从第二张纸条上得到了这个信息。这不要紧,但试着在
的两侧添加空格,我认为Michael Kay是对的,这是libxslt的一个错误,这解释了为什么不能使用
。我已经在ASP.NET应用程序上进行了测试,它可以与
配合使用,并且在使用
+1时引发异常。这很好,谢谢,尽管我仍然有兴趣知道为什么
w3schools测试台出现问题是它们损坏了“
<xsl:for-each select="catalog/cd[(position()>5)]">
<xsl:for-each select="catalog/cd[not(position()>4)]">