Toon posts:

XML/XSL node selecteren aan hand van parameter/variabele

Pagina: 1
Acties:

Verwijderd

Topicstarter
"$rowid" is een variabele
"$fieldname" is ook een variabele. Heeft in eerste instantie de value "startdatum"

Nu werkt dit niet:
<xsl:value-of select="//row[@id=$rowid]/$fieldname" />

en dit wel:
<xsl:value-of select="//row[@id=$rowid]/startdatum" />

Dus als ik "startdatum" hardcoded plaats, werkt het wel.

Ik krijg de error: nodetest expected.
Waarom eigenlijk, het komt uiteindelijk toch op het zelfde neer? 8)7

  • djazete
  • Registratie: Juli 1999
  • Laatst online: 07-02-2020

djazete

steel

het kan handig zijn de context er even bij te plaatsen wellicht...

  • marcusk
  • Registratie: Februari 2001
  • Laatst online: 26-09-2023
gokje:

<xsl:value-of select="//row[@id=$rowid]/*[name()=$fieldname]" />

  • mbravenboer
  • Registratie: Januari 2000
  • Laatst online: 06-11-2025
-NW: Waarom eigenlijk, het komt uiteindelijk toch op het zelfde neer? 8)7
Nee, absoluut niet: in XSLT 1.0 zijn geen dynamische XPaths toegestaan. Dat betekent: je mag een XPath niet at runtime opbouwen met behulp van variabelen, functies enzovoorts.

In XSLT 2.0 is dit aangepast en zijn dynamische XPaths wel toegestaan. Sommige processoren supporten dit al. Ook dit heeft EXSLT weer standaard gemaakt:

http://www.exslt.org/dyn/index.html

Je kan dit vergelijken met de eval van PHP.

Blog, Stratego/XT: Program Transformation, SDF: Syntax Definition, Nix: Software Deployment


Verwijderd

Topicstarter
marcusk schreef op 05 March 2003 @ 23:19:
gokje:

<xsl:value-of select="//row[@id=$rowid]/*[name()=$fieldname]" />
Het werkt!!

  • mbravenboer
  • Registratie: Januari 2000
  • Laatst online: 06-11-2025
-NW: "$fieldname" is ook een variabele. Heeft in eerste instantie de value "startdatum"
Grappige zin trouwens: er is namelijk alleen maar een eerste instantie bij XSLT variabelen ;) .

Blog, Stratego/XT: Program Transformation, SDF: Syntax Definition, Nix: Software Deployment


Verwijderd

Topicstarter
hehe
ok, beetje vreemd gezegd maar de variabele zit in een for-each loop :)
Pagina: 1