[XSLT/XPath] Probleempje met variabelen en functies

Pagina: 1
Acties:

  • _Thanatos_
  • Registratie: Januari 2001
  • Laatst online: 15-05 14:44

_Thanatos_

Ja, en kaal

Topicstarter
Ik heb een XSLT gemaakt en daarin wil ik een variabele aanmaken, dat doe ik op de volgende manier:
XML:
1
<xsl:variable name="nextpage" select="pages/collection/url[number(pages/current)+1]"/>

Prima gedaan, zou je denken, maar het geeft een lege string, als ik em probeer te outputten:
XML:
1
<xsl:value-of select="$nextpage"/>
Nou kwam ik tot de ontdekking dat als ik alleen het stukje "number(pages/current)+1" output, dan komt daar een goeie waarde uit, bijvoorbeeld 3. Doe ik vervolgens "pages/collection/url[3]" outputten, krijg ik daar de juiste url uit.

Ik heb het dus tijdelijk opgelost door zo te doen:
XML:
1
2
<xsl:variable name="nextpageindex" select="number(pages/current)+1"/>
<xsl:variable name="nextpage" select="pages/collection/url[$nextpageindex]"/>


Het lijkt er dus op dat zulke complexe queries niet mogelijk zijn. Klopt dat, of doe ik gewoon iets fout? Ik gebruik trouwens MSXML 3.0 als parser. Gewoon de transformNode() method.

日本!🎌


  • marcusk
  • Registratie: Februari 2001
  • Laatst online: 26-09-2023
De expressie "number(pages/current)+1" in "pages/collection/url[number(pages/current)+1]" is relatief t.o.v. "pages/collection/url".

"pages/current" verwijst daarbij dus naar "pages/collection/url/pages/current".

Om het juiste resultaat te bereiken gebruik je "../../pages/current", of een absoluut pad: "/doc/pages/current" b.v.b.

[ Voor 48% gewijzigd door marcusk op 21-01-2005 00:47 ]


  • _Thanatos_
  • Registratie: Januari 2001
  • Laatst online: 15-05 14:44

_Thanatos_

Ja, en kaal

Topicstarter
Yes, bijna... het bleek "pages/collection/url[number(../../current)+1]" te moeten zijn :)

[ Voor 10% gewijzigd door _Thanatos_ op 21-01-2005 02:27 ]

日本!🎌