Toon posts:

[xslt] string-length en substring

Pagina: 1
Acties:
  • 160 views sinds 30-01-2008
  • Reageer

Verwijderd

Topicstarter
Hallo,

Ik ben vrij nieuw met XSLT. Maar ik wil graag een string afkappen. Het gaat om Newsitems/item/@title.

code:
1
2
3
4
5
6
7
8
9
    <xsl:for-each select="Newsitems/item">
        <xsl:variable name="titleLength" select="string-length(@title)"/>
        <xsl:if test="$titleLength &gt; 120">
            <xsl:value-of select="substring(@title,0,117)"/>...<br />
        </xsl:if>
        <xsl:if test="$titleLength &lt; 121">
            <xsl:value-of select="@title"/><br />
        </xsl:if>
    </xsl:for-each>

Deze code heb ik, maar levert me geen output op. Kan iemand me op weg helpen hiermee?

Met vriendelijke groet,


Frederik

[ Voor 131% gewijzigd door Verwijderd op 01-03-2005 23:26 ]


  • Woudloper
  • Registratie: November 2001
  • Niet online

Woudloper

« - _ - »

Wellicht staat op deze pagina een oplossing en anders staat daar wel een goede uitleg voer het 'splitting and Manipulating strings'

Verwijderd

Topicstarter
Ik heb daar mijn oplossing niet kunnen vinden. Bedankt voor je reactie.

Verwijderd

Topicstarter
De code was gewoon goed. Ik maakte zelf alleen een aantal domme fouten. Na een paar uur proberen begin je aan jezelf te twijfelen ;) Deze thread kan gesloten worden!

  • Woudloper
  • Registratie: November 2001
  • Niet online

Woudloper

« - _ - »

Zoals je wellicht weet worden niet zomaar alle threads gesloten. Kan je wellicht aangeven (voor andere lezers van dit topic en met dit probleem) wat er precies fout is in bovenstaande code Is altijd handig voor de historie/naslag...

  • ronaldmathies
  • Registratie: Juni 2001
  • Niet online
Volgens mij heeft hij net gezegt dat de code gewoon goed is. Alleen maakt hij schijnbaar om het hele process heen zelf een paar handelings fouten.

Dus verklaren wat er niet goed is aan de code gaat in dit geval wat lastig.

3015 Wp-z 5360 Wp-nno op 2 x SMA-SB3600 TL-21, Warmtepomp: ERSC-VM2CR2 / PUHZ-SHW140 YHA, WTW Q350, EV Kia Ev6 GT-Line


  • Woy
  • Registratie: April 2000
  • Niet online

Woy

Moderator Devschuur®
Waarom doe je het eigenlijk met 2 if tests en niet op de volgende manier?

XSLT:
1
2
3
4
5
6
7
8
<xsl:choose>
    <xsl:when test="$titleLength &gt; 120">
        <xsl:value-of select="substring(@title,0,117)"/>...<br />
    </xsl:when>
    <xsl:otherwise>
        <xsl:value-of select="@title"/><br />
    </xsl:otherwise>
</xsl:choose>

Niet dat jou code verkeerd is maar dit lijkt me logischer.

“Build a man a fire, and he'll be warm for a day. Set a man on fire, and he'll be warm for the rest of his life.”


  • djc
  • Registratie: December 2001
  • Laatst online: 08-09 23:18

djc

De choose/when/otherwise kost je in dit geval wel iets meer code/regels.

[ Voor 3% gewijzigd door djc op 03-03-2005 10:22 ]

Rustacean


  • Woy
  • Registratie: April 2000
  • Niet online

Woy

Moderator Devschuur®
Dat wel maar als je de test aan wilt passen hoeft dat maar op een plek. Vandaar dat ik het wat logischer vindt

“Build a man a fire, and he'll be warm for a day. Set a man on fire, and he'll be warm for the rest of his life.”


  • Alantin
  • Registratie: December 2000
  • Laatst online: 23-11 00:55

Alantin

Goh, wat zit je haar leuk...

Bovendien werkt de choose/when/otherwise constructie net als switch/case, waarmee performance dus positief beinvloed wordt. Bovendien is het toevoegen van nieuwe 'cases' met xsl:if een stuk complexer aangezien je ook de tegengestelde 'cases' moet afvangen.

Conducteur: zit je thuis ook met je schoenen op de bank? Alantin: knip je thuis ook kaartjes?

Pagina: 1