Avatar billede askhoej Praktikant
13. marts 2005 - 13:06 Der er 2 løsninger

Vis kun top 5

Hej

Jeg bruger nedenstående XSL til at vise et XML dokument, men jeg vil gerne kun nøjes med at vise de 5 første thread nodes. Kan det gøres med XSL?

Jeg vil også gerne have at der fra "Title" kun vises de første 20 tegn og herefter 3 ..., hvis title er længere end 20 tegn kan det lade sig gøre med XSL?

<?xml version="1.0"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
   
        <xsl:template match="source">
            <xsl:for-each select="thread">
            <xsl:variable name="thread_id" select="@id" />
            <a href="http://www.domain.dk?goto=newpost&amp;t={$thread_id}" target="_blank"><xsl:value-of select="title" /></a><br/>
            <p>
            af <xsl:value-of select="author" />
            </p>
            <br/>
           
            </xsl:for-each>
        </xsl:template>
   
</xsl:stylesheet>
Avatar billede atoft Nybegynder
14. marts 2005 - 08:35 #1
lav din for:each om til

<xsl:for-each select="thread[position() &lt; 6]">
Avatar billede Slettet bruger
14. marts 2005 - 13:54 #2
I stedet for <xsl:value-of select="title" /> sætter du en <xsl:apply-templates select="title" /> og tilføjer en template:

<xsl:template match="title">
  <xsl:variable name="text" select="normalize-space(.)" />
  <xsl:choose>
      <xsl:when test="string-length($text) &gt; 20">
        <span title="{$text}"><xsl:value-of select="sub-string($text, 1, 20)" />...</span>
      </xsl:when>
      <xsl:otherwise>
        <xsl:value-of select="$title" />
      </xsl:otherwise>
  </xsl:choose>
</xsl:template>

/CS
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester