[xsl] beperkt aantal records

Pagina: 1
Acties:

  • Tjeemp
  • Registratie: Januari 2005
  • Laatst online: 03-01-2015

Tjeemp

BEER N TEA

Topicstarter
ik wil met xsl een beperkt aantal records terugkrijgen uit mijn xml-bestand. ik zou denken dat het met een for-each moet of een if/when ik heb echter geen idee hoe ik dit nu goed werkend krijg....

google bracht mij ook niet echt wat ik nodig heb en ik heb gezien dat er heel veel vragen over zijn en bar weinig antwoorden...
is er een mogelijkheid dat je bijvoorbeeld de laatste 3 records eruit kunt weergeven, want zoiets zou ik graag willen gebruiken...

XML:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
<xsl:for-each select="contact">
  <xsl:sort select="voornaam"/>

  <tr bgcolor="#F4F4F4">

    <td>
      <xsl:value-of select="voornaam"/>
    </td>

    <td align="center">
      <xsl:value-of select="geslacht"/>
    </td>

    <td>

      <xsl:for-each select="telefoonnummers/nummer">

        <a>
          <xsl:attribute name="href">tel://<xsl:value-of select="."/></xsl:attribute>
          <xsl:value-of select="."/>
        </a>
        [ <xsl:value-of select="@omschrijving"/> ]
    <xsl:if test="position()!=last()">
          <xsl:text> &amp; </xsl:text>
        </xsl:if>

      </xsl:for-each>
    </td>

    <td>
      <a>
        <xsl:attribute name="href">mailto://<xsl:value-of select="emailadres"/></xsl:attribute>
        <xsl:value-of select="emailadres"/>
      </a>
    </td>

  </tr>
  </xsl:for-each>

zo ziet mijn for-each loop er nu uit...

ik weet niet of de xml hier ook voor van belang is, als dat zo is post ik die er alsnog even bij...

www.timovanderzanden.nl | Beer 'n' Tea


Verwijderd

Dit is een mogelijkheid:
XML:
1
<xsl:for-each select="telefoonnummers/nummer[count(following-sibling::nummer) lt 3]">

Oftewel, pak alle nummers waarvoor geldt dat er minder dan drie nummers na komen: de laatste drie dus.

[ Voor 35% gewijzigd door Verwijderd op 09-06-2006 15:46 ]


  • Blue-eagle
  • Registratie: September 2000
  • Niet online
Edit: Een manier om te filteren:

XML:
1
2
3
4
5
6
7
8
9
10
11
<xsl:for-each select="//record[position() &lt; 5]">
    bla
</xsl:for-each>

of

<xsl:for-each select="select">
    <xsl:if test="position() &lt; 5">
        bla
    </xsl:if>
</xsl:for-each>


Edit2: Laatste X-aantal:
XML:
1
2
3
<xsl:for-each select="//test[position() &gt; count(//test)-5]">
    bla
</xsl:for-each>

[ Voor 61% gewijzigd door Blue-eagle op 09-06-2006 16:51 ]