[xsl] why does the linit not work here ?

Subject: [xsl] why does the linit not work here ?
From: Roelof Wobben <rwobben@xxxxxxxxxxx>
Date: Fri, 13 Jan 2012 18:45:41 +0000
Hello,



I have this xml :





Master.xsl :



<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0"
 xmlns:xsl="http://www.w3.org/1999/XSL/Transform";>



<xsl:import href="../utilities/top.xsl"/>
<xsl:import href="../utilities/frontpage-article.xsl"/>
<xsl:import href="../utilities/recent_posts.xsl"/>
<xsl:import href="../utilities/navigation.xsl"/>



<xsl:output method="xml"
 doctype-public="-//W3C//DTD XHTML 1.0 Strict//EN"
 doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd";
 omit-xml-declaration="yes"
 encoding="UTF-8"
 indent="yes" />



<xsl:template match="/">
<xsl:apply-templates select="data/params" mode="top" />
     <body>
             <div id="outer">
                 <div id="container">
                     <div id="search">
                         <form method="get" id="searchform"
action="http://test.tamarawobben.nl/search-page/"; >
                             <input type="text" value="" name="keywords"
id="s" class="txtField" />
                             <input type="submit" id="searchsubmit"
class="btnSearch" value="Find It " />
                        </form>
                     </div>
                         <div id="title">
                             <h2><xsl:text>Tamara Wobben</xsl:text></h2>
                        </div>
                     </div>
                     <div id="content">
                        <div class="col01">
                                <div class="post">
                                     <xsl:apply-templates select="data" />
                                </div></div>
                              <div class="side-columns">
                             <div class="col02">
                                 <div class="pages">
                                     <!-- hier komen de losse pagina's -->
                                 </div>
                                 <div class="pages-bottom"></div>
                                 <div class="categories-upper"></div>
                                 <div class="categories">
                                    <xsl:apply-templates select="data/menu"
/>
                                </div>
                                 <div class="categories-btm"></div>
                                </div>
                             <div class ="col03">
                                <div class="recent-posts" >
                                   <xsl:apply-templates
select="data/recent-posts/entry" />
                                </div>
                                <div class="postit-bottom"></div>
                            </div>
                         </div>
<br style="clear:both" />
                     </div>
                     <xsl:apply-templates select="data/params" mode="down" />
                </div>
            </body>
</xsl:template>

</xsl:stylesheet>


Dagboek.xsl :



<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0"
 xmlns:xsl="http://www.w3.org/1999/XSL/Transform";>



<xsl:import href="../utilities/master.xsl"/>
<xsl:import href="../utilities/dagboek-article.xsl"/>

<xsl:param name="total_articles"
select="data/dagboek/pagination/@total-entries" />



<xsl:param name="articles_per_page">
    <xsl:choose>
        <xsl:when test="$page = 1 and $year = 2005 and $month =
04">1</xsl:when>
        <xsl:otherwise>3</xsl:otherwise>
    </xsl:choose>
</xsl:param>



<xsl:param name="number_pages">
    <xsl:choose>
        <xsl:when test="$year = 2005 and $month = 04">3</xsl:when>
        <xsl:otherwise>
           <xsl:value-of select="ceiling($total_articles div
$articles_per_page)" />
        </xsl:otherwise>
    </xsl:choose>
</xsl:param>



<xsl:param name="offset">
    <xsl:choose>
        <xsl:when test="$page = 1 and $year = 2005 and $month =
04">0</xsl:when>
        <xsl:when test="$page &gt; 1 and $year = 2005"><xsl:value-of
select="($page - 1)* $articles_per_page -2" /> </xsl:when>
        <xsl:otherwise>
           <xsl:value-of select="$articles_per_page * $page  -
$articles_per_page " />
        </xsl:otherwise>
    </xsl:choose>
</xsl:param>



<xsl:param name="end" select="$offset + $articles_per_page + 1" />



<xsl:template match="data">
       <xsl:apply-templates select="dagboek/entry[position() &gt;
$offset][position() &lt; $end]" />
</xsl:template>



</xsl:stylesheet>



dagboek-article.xlt :



<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0"
 xmlns:xsl="http://www.w3.org/1999/XSL/Transform";>



<xsl:import href="../utilities/frontpage-article.xsl"/>
<xsl:import href="../utilities/date-time.xsl"/>



<xsl:template match="dagboek/entry" >
   <h3>
    <xsl:value-of select="titel" />
  </h3>
  <div class="post-inner">
     <div class="date-tab">
         <span class="month">
               <xsl:call-template name="format-date">
            <xsl:with-param name="date" select="datum"/>
      <xsl:with-param name="format" select="'M'"/>
               </xsl:call-template>
         </span>
         <span class="day">
                <xsl:call-template name="format-date">
      <xsl:with-param name="date" select="datum"/>
      <xsl:with-param name="format" select="'d'"/>
                </xsl:call-template>
         </span>
   </div>
   <xsl:apply-templates select="tekst" />
</div>
</xsl:template>



</xsl:stylesheet>



frontpage-article.xsl :



<?xml version="1.0" encoding="UTF-8"?>


<xsl:stylesheet version="1.0"
 xmlns:xsl="http://www.w3.org/1999/XSL/Transform";>



<xsl:template match="section/entry">
         <h3><xsl:value-of select="title" /></h3>
         <div class="post-inner">
            <xsl:apply-templates select="tekst" />
         </div>
</xsl:template>



<xsl:template match="tekst//p[starts-with(., 'FLOAT : ')]" priority="1">
    <img class="float-left" src="{$workspace}/images/{substring-after(.,
'FLOAT : ')}" />
</xsl:template>



<xsl:template match="tekst//*">
    <xsl:element name="{name()}">
        <xsl:apply-templates select="* | @* | text()"/>
    </xsl:element>
</xsl:template>



<xsl:template match="tekst//@*">
    <xsl:attribute name="{name(.)}">
        <xsl:value-of select="."/>
    </xsl:attribute>
</xsl:template>



</xsl:stylesheet>





Here's my xml :



<data>

     <dagboek>

          <pagination total-entries="8" total-pages="1" entries-per-page="20"
current-page="1" />

          <section id="9" handle="dagboek">Dagboek</section>

               <entry id="20">

                   <tekst mode="formatted"><p>Alvast bloed laten prikken voor
de tripletest. De uitstag is dan binnen als de nekplooimeting wordt gedaan.
Sinds kort kan dat in het S.M.T. in Hengelo, dus dat is mooi meegenomen. Nog
niet veel mensen weten dat je in mijn buik aan het groeien bent, maar ik had
het al wel tegen een vriendin verteld en het leuke was dat ik de week erna een
hele stapel broeken te leen kreeg en een stapel Wij jonge ouders. Dus lees ik
volop. Heerlijk om in weg te dromen en ik ben benieuwd hoe jij eruit zult
zien.</p> 45 46<p>FLOAT : echo.jpg </p> 47 48<p>De hoeveelheid vocht in jouw
nek is meer dan gebruikelijk, het is 3,2 mm, met alle gegevens erbij wordt een
kansberekening gemaakt voor het Downsyndroom. De uitslag is een kans van 1 op
24. Het lijkt niet veel maar toch. Verslagen verlaten we het ziekenhuis en in
de trein wordt het mij teveel. De uitslag en het gezeur over de manier waarop
de echo was geregeld werd me teveel en wat me al heel lang niet meer was
overkomen gebeurt dan toch, ik zit te huilen in de trein.</p> 49 50<p>Terug op
het werk vertel ik mijn collegas wat er is gezegd en neem dan pauze, even de
honden uitlaten. Thuis schrik ik van het bericht op het antwoordapparaat. Mijn
gynaecoloog, Dr. Veenstra heeft gebeld, de uitslag van de tripletest is binnen
en ze wil me zo snel mogelijk spreken. Uitslag binnen, dat kon toch niet. Ik
snap er niets meer van en ga eerst met de honden lopen en moed verzamelen. Dr.
Veenstra is er s middags niet en ik word doorverbonden met Dr. Gnodde. Hij
verontschuldigd zich voor het feit dat ik deze informatie over de telefoon
krijg, maar het is heel belangrijk. De uitslag van de tripletest is dat er een
kans is van 1 op 30 op een kindje met het Downsyndroom. Echter, samen met de
nekplooimeting wordt het een kans van 1 op 3! Als ik de telefoon neerleg is de
grond onder mijn voeten weggeslagen. De honden voelen mijn verdriet en zitten
dicht bij me. Ik bel jouw papa en spreek met hem af dat ik hem op kom halen
zodra ik rustig ben, ik heb behoorlijk zitten huilen aan de telefoon.</p>
<p>Terug op het werk zien mijn collegas al dat niet goed gaat en ik vertel
wat er is. Het werk wordt onder mijn handen weggepakt en ik moet je papa
bellen. Hij is er heel snel en we gaan samen naar huis, een voordeel als je in
het zelfde gebouw werkt.</p>

          </tekst>

                  <titel handle="nekplooimeting">Nekplooimeting </titel>

                  <datum time="00:00" weekday="5">2005-04-01</datum>

              </entry>

              <entry id="21">

                    <tekst mode="formatted"><p>Er is veel gesproken over de
echo, de vlokkentest en mijn angst hiervoor. Jouw papa en ik hebben besloten
om het wel te doen, dan hebben we zekerheid. Ik heb het ziekenhuis gebeld en
ik moet morgen naar het MST. Ik zie er als een berg tegenop.</p>

                     </tekst>

                     <titel handle="vlokkentest">Vlokkentest ?</titel>

                     <datum time="19:16" weekday="1">2005-04-04</datum>

               </entry>

               <entry id="22">

              <tekst mode="formatted"><p>De dag van de vlokkentest. De
ontvangst was beter dan de vorige keer. De echo die we hadden was mooi. Even
leek je naar ons te zwaaien, jouw handje werd eerst een vuistje en vervolgens
ging jouw duim richting je mond. Alsof je ons wilde zeggen dat het goed met je
ging. 66 De voorbereidingen werden getroffen en de test kon beginnen. Oeps wat
een grote naald en spuit. Even kreeg ik het Spaans benauwt, maar het viel
allemaal mee. Dat ik daar zo tegenop heb gezien, nergens voor nodig. Nu twee
weken wachten op de uitslag, dan weten we meer over je. </p>

               </tekst>

               <titel handle="vlokkentest">Vlokkentest</titel>

               <datum time="00:00" weekday="2">2005-04-05</datum>

              </entry>

               <entry id="23">

                   <tekst mode="formatted"><p>Ik ben samen met jouw oma Marie
en tante Gerda naar de huishoudbeurs geweest. Zeer vermoeiend om zon tijd te
lopen, maar ook zo lekker om je gedachten bij hele andere dingen te hebben.
Tja en dan kom je op de negenmaanden beurs, heerlijk om daar zwanger rond te
lopen. Ik vond wel dat het meer was voor mensen die kinderen hadden in de
peuterleeftijd maar het was wel leuk. Er was een stand waar je naar het hartje
van je kind kon luisteren. Dat wilde ik wel, jouw hartje horen. Volgens de
folders kon dat vanaf 12 weken en jij bent 13,5 weken dus.. vragen ze
doodleuk of ik met een volle blaas wil komen, ja echt niet. Rond lopen op de
Huishoudbeurs met een volle blaas. Ze hebben je goed moeten zoeken, maar heel
vaag was je hartje te horen yes yes yes. De rest van de dag heb je me op een
roze wolk laten zitten</p>

                 </tekst>

                   <titel handle="dagje-uit-voor-mama">Dagje uit voor
mama</titel>

                  <datum time="00:00" weekday="4">2005-04-07</datum>

               </entry>

               <entry id="24">

                 <tekst mode="formatted"><p>We zijn nog druk bezig met de
woonkamer, als om half vijf de telefoon gaat. Het blijkt iemand van het MST te
zijn met de uitslag van de vlokkentest. Nu al. De mededeling is zakelijk. Jij
hebt het Downsyndroom en onze eigen gynaecoloog is nog niet op de hoogte van
de uitslag. Goedenavond.  79Even dringt niet tot me door wat je papa mij
verteld, maar na een paar minuten komt de informatie toch binnen. Wat ik zelf
al vermoedde is waar. Maar wat er ook gebeurt jij bent ons kindje en je bent
welkom. Morgen bel ik het SMT voor een afspraak bij dokter Veenstra. Nu eerst
onze ouders en zussen bellen, iedereen is verdrietig maar ze steunen ons
geweldig.  80Al is het vroeg, ik hoop dat je mij heel vroeg een teken van
leven zult geven. Ik heb het even nodig om te weten dat mijn gevoel goed
is.</p>

                  </tekst>

                  <titel handle="uitslag-vlokkentest">Uitslag
vlokkentest</titel>

                  <datum time="00:00" weekday="1">2005-04-11</datum>

            </entry>

           <entry id="25">

          <tekst mode="formatted"><p>Het gesprek met dokter Veenstra was goed.
Ze was niet blij met de gang van zaken maar kon er helaas niets meer aan
veranderen. Voor het eerst hebben we je hartje gehoord via de doptone, het was
mooier dan tijdens de huishoudbeurs en je papa was er nu bij. Een mooi
treintje, super om te horen.  87Wij hebben contact gezocht met de SDS
(Stichting DownSyndroom) en de opvang was zeer goed. Een luisterend oor en
alle medewerking om ons van goede informatie te voorzien. Binnenkort kunnen
wij een pakket met informatie verwachten. </p>

           </tekst>

           <titel handle="gesprek-dr-veenstra">Gesprek Dr. Veenstra</titel>

           <datum time="00:00" weekday="5">2005-04-15</datum>

         </entry>

         <entry id="26">

             <tekst mode="formatted"><p>Het is er echt, zeker weten. Een heel
harde plop in mijn buik. Nog steeds is mijn buik zo plat als een dubbeltje,
maar er zit leven binnenin, jij zit in mijn buik. Ik geniet van het moment en
niemand neemt me dit af. Heerlijk om zo zwanger te zijn. De enige twee dingen
die ik heb zijn zere borsten en moeheid. Maar dat vind ik niet erg.  94De
mensen van de SDS hebben hun woord gehouden, een enorm pak met folders hebben
ze ons toegestuurd. De komende tijd hebben we genoeg te lezen om meer te weten
te komen over het Down Syndroom.</p>

         </tekst>

          <titel handle="plop">Plop</titel>

          <datum time="00:00" weekday="7">2005-04-24</datum>

      </entry>

 </dagboek>

</data>



What i was expecting was if I goto page 2 of april 2005 there will be 3
articles displayed because articles_per_page has the value of 3 and offset has
value of 1 and end has the value of 5.

So this rule : <xsl:apply-templates select="dagboek/entry[position() &gt;
$offset][position() &lt; $end]" /  is supposed to display all the articles
between 1 and 5. So articles 2,3,4.

But as you can see at http://test.tamarawobben.nl/dagboek/2005/04/02 also
article 5 is displayed.



Can anyone help me figure out why this happens ?



Roelof

Current Thread