Avatar billede ulr Nybegynder
19. marts 2003 - 14:42 Der er 9 kommentarer og
1 løsning

frem og tilbage med XSL

Jeg skal på min hjemmeside som viser en aktuel persons CV lave en funktion hvor man via et link kan gå en person til bage eller en person frem....

Den aktuelle persons cv er i mit XSL dokument blot angivet som "." hvis jeg så fx vil skrive fornavnet ud:
<xsl:value-of select="pt:fld('Firstname',.)"/>

Men hvis jeg nu vil skrive fornavnet ud på det næste "item" og bagefter på det foregående "item" hvordan gør jeg så dette, når den eneste reference jeg har er den aktuelle "." ??
man kan vel ikke bare skrive ".++" og så hopper den en frem ?

/ulrik
Avatar billede ehf Nybegynder
19. marts 2003 - 15:04 #1
Prøv med

<xsl:value-of select="./preceding-sibling::NAMEOFELEMENT[1]/Firstname/>
og
<xsl:value-of select="./following-sibling::NAMEOFELEMENT[1]/Firstname/>

/EHF
Avatar billede ulr Nybegynder
19. marts 2003 - 15:50 #2
når jeg sætter det ind i mit XSL dokument får jeg følgende fejlmeddelelse....

XSL error in /xsl/sublayout.xsl: The character '<' cannot be used in an attribute value. [line 75, pos 6, source: ' </sc:dot>']

<tr>
  <td class="usernormal">
      <crawl-start>     
    <b>
    <sc:dot>
      <xsl:value-of select="./preceding-sibling::NAMEOFELEMENT[1]/Firstname/>
         
      </sc:dot>
      </b>
      </crawl-start>
  </td>
</tr>


hvor </sc:dot> == linie 75....??
Avatar billede Slettet bruger
21. marts 2003 - 11:00 #3
Du har glemt en afsluttende quote (") i linjen:

<xsl:value-of select="./preceding-sibling::NAMEOFELEMENT[1]/Firstname/>

Lav om til:

<xsl:value-of select="./preceding-sibling::NAMEOFELEMENT[1]/Firstname" />

og se hvad der så sker...
/CS
Avatar billede ulr Nybegynder
21. marts 2003 - 11:33 #4
Jeg prøvede at sætte det ind med rettelsen men der sker stadi ingen ting
når jeg fx sætter følgende ind....:
<tr>
<td class="usernormal">
<crawl-start>     
  <b>
  <sc:dot>
 
  <xsl:value-of select="pt:fld('Firstname',.)"/>
  <xsl:value-of select="pt:fld('Lastname',.)"/>
  <xsl:value-of select="./following-sibling::NAMEOFELEMENT[1]/Firstname"/>
  </sc:dot>
  </b>
</crawl-start>
</td>
</tr>

Så skriver den kun 'Firsname' og 'Lastname' ud men ikke den næste, jeg har også prøvet med 'preceding' men det fungere heller ikke....
Man kan sige nu kommer der ikke nogen fejl, så det kunne tyde på at den ikke kan finde den næste eller forrige.....
Avatar billede Slettet bruger
21. marts 2003 - 11:53 #5
Har du ikke erstattet "NAMEOFELEMENT" med det elementet rent faktisk hedder? (Går ikke ud fra det er det det hedder...)

/CS
Avatar billede ulr Nybegynder
25. marts 2003 - 12:11 #6
Jeg kan se hvad du mener.....jeg er ikke super skrap til det der XSL.
Jeg kan ikke umiddelbart finde nvnet på et element....

<xsl:value-of select="pt:fld('Lastname',.)"/>
Denne linie tager 'Lastname' og skriver det ud. Er det ikke '.' der er det aktuelle element....?

Eller er jeg helt gal på den....?
Avatar billede Slettet bruger
25. marts 2003 - 22:13 #7
Hvad står der i match-attributten på den template ovenstående kode ligger i?

- Det er ret vigtigt, da "." som du skriver er det aktuelle element. Og "pt:fld()" er en extension-funktion, som (mit gæt) finder et element - sikkert udfra et andet...

Umiddelbart vil jeg dog tro at lg. kan erstatte din linje:

  <xsl:value-of select="following-sibling::*[1]/Firstname" />

- Hvis f.eks. XML'en ligner det her:
<people>
<person>
  <Firstname />
  <Lastname />
</person>
<person>
  <Firstname />
  <Lastname />
</person>
...
</people>

/CS
Avatar billede ulr Nybegynder
26. marts 2003 - 13:51 #8
<xsl:template match="*">

Dette står der øverst i den template som min "funktion" befinder sig....

hmmm jeg har prøvet med din '*' ændring men den vil stadig kun skrive det aktuelle fornavn og efternavn ud...??
Avatar billede vux Nybegynder
21. maj 2003 - 10:45 #9
Prøv med noget i retning af:

<xsl:value-of select="pt:fld('Firstname',./following-sibling::item)/>
<xsl:value-of select="pt:fld('Lastname',./following-sibling::item)/>
Avatar billede andd Nybegynder
03. august 2003 - 09:14 #10
Og husk lige de afsluttende quotes:

<xsl:value-of select="pt:fld('Firstname',./following-sibling::item)" />
<xsl:value-of select="pt:fld('Lastname',./following-sibling::item)" />
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