title: position()=1 working correctly, but not position()<5
body: <p>I'm new to XSLT, and I'm carrying out a few tests using w3schools "Try it yourself"  pages. I'm using the following demo:</p>
  
  <p><a href="http://www.w3schools.com/xsl/tryxslt.asp?xmlfile=cdcatalog&amp;xsltfile=tryxsl_choose" rel="nofollow">http://www.w3schools.com/xsl/tryxslt.asp?xmlfile=cdcatalog&amp;xsltfile=tryxsl_choose</a></p>
  
  <p>This contains the following line:</p>
  
  <pre><code>&lt;xsl:for-each select="catalog/cd"&gt;
  </code></pre>
  
  <p>I'm testing filtering the HTML rendered by <code>position()</code> but I'm having issues when using the <code>&lt;</code> operand.</p>
  
  <hr>
  
  <p>I've tried the following:</p>
  
  <pre><code>&lt;xsl:for-each select="catalog/cd[position()=1]"&gt;
  </code></pre>
  
  <p>And this returns the first item from the XML data (as expected).</p>
  
  <hr>
  
  <p>I then tried:</p>
  
  <pre><code>&lt;xsl:for-each select="catalog/cd[position()&lt;5]"&gt;
  </code></pre>
  
  <p>I was expecting this to return the first 4 items, but instead I get no results.</p>
  
  <p>My guess is that perhaps <code>position()=1</code> is doing a string comparison, which is why it returns the first item, but it cannot understand <code>position()&lt;5</code> as a string cannot be compared in this way?</p>
  
  <p>Why is this happening, and what would be the correct syntax to get the results I wish to achieve?</p>
  
  <hr>
  
  <p><strong>Update:</strong> After reading @joocer's response, and testing this myself, using the <code>&gt;</code> operand does work, for the opposite result:</p>
  
  <pre><code>&lt;xsl:for-each select="catalog/cd[(position()&gt;5)]"&gt;
  </code></pre>