xsl:for-each select="$variable" vraag

Pagina: 1
Acties:

  • bsquare
  • Registratie: Oktober 2003
  • Laatst online: 22-02-2025
situatie:
++++++++++++++++++++++++++++++++++++++++++++++++
xml.php bestand: (met xml-output)
<?xml version="1.0" encoding="ISO-8859-1"?>
<?xml-stylesheet type="text/xsl" href="xsl.xsl"?>

<node id=1>
<child>
<info>bla</info>
<child/>
<child>
<info>bla</info>
<child/>
</node>
<node id=1>
<child>
<info>bla</info>
</child>
</node>
<node id=1>
<child>
<info>bla</info>
<child/>
<child>
<info>bla</info>
</child>
</node>
++++++++++++++++++++++++++++++++++++++++++++++++
xsl.xsl bestand

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:html="http://www.w3.org/TR/REC-html40">
<xsl:output method="xml" version="1.0" encoding="ISO-8859-1" indent="yes"/>

<xsl:template match="node">
<html>
<head>
<?php if (isset($HTTP_GET_VARS["ID"])) {
$ID = $HTTP_GET_VARS["ID"];
}
else {
$ID = "1";
}
?>
</head>
<body>

<xsl:for-each select="self::*">
<a>
<xsl:attribute name="href">
xsl.xsl?ID=
<xsl:value-of select="@id"/>
</xsl:attribute>
blabla
</a>
</xsl:for-each>

<xsl:for-each select="self::*[$ID]*">
<xsl:value-of select="child/info"/>
</xsl:for-each>
</body>
</html>
++++++++++++++++++++++++++++++++++++++

de output is dus een link die de variabele id= meestuurd (xsl.xsl?ID= misschien moet dit --> xsl.php?ID= zijn) vervolgens moet voor een node met attribuut (1) de text in child/info worden getoont.

Hoe kan ik een for-each maken met een variabele attribuut?
<xsl:for-each select="self::*[$ID]*">

++++++++++++++++++++++++++++++++++++++

  • Michali
  • Registratie: Juli 2002
  • Laatst online: 22-03 18:12
Welke parser gebruik je? Als je de XSLT extensie gebruikt, dan doe je er goed aan om deze pagina even door te nemen: http://nl2.php.net/manual/en/function.xslt-process.php en dan vooral het 4de voorbeeld.

[ Voor 9% gewijzigd door Michali op 02-03-2005 17:59 ]

Noushka's Magnificent Dream | Unity


  • bsquare
  • Registratie: Oktober 2003
  • Laatst online: 22-02-2025
Michali schreef op woensdag 02 maart 2005 @ 17:58:
Welke parser gebruik je? Als je de XSLT extensie gebruikt, dan doe je er goed aan om deze pagina even door te nemen: http://nl2.php.net/manual/en/function.xslt-process.php en dan vooral het 4de voorbeeld.
Ik gebruik gewoon xsl en xmlspy.
Aan de hand van variable meegegeven in een link, wil ik (in de for-each select(element[attribute]) ), het attribuut variabel maken, is er geen andere methode binnen xsl, dan php die xsl output?

  • Michali
  • Registratie: Juli 2002
  • Laatst online: 22-03 18:12
maar je roept dat XSL bestand toch niet direct aan lijkt me. Of je geeft in een XML bestand aan welke stylesheet je gebruikt, of je gebruikt een parser (in php bijvoorbeeld).

Noushka's Magnificent Dream | Unity


  • bsquare
  • Registratie: Oktober 2003
  • Laatst online: 22-02-2025
Michali schreef op woensdag 02 maart 2005 @ 18:29:
maar je roept dat XSL bestand toch niet direct aan lijkt me. Of je geeft in een XML bestand aan welke stylesheet je gebruikt, of je gebruikt een parser (in php bijvoorbeeld).
ik heb een xml bestand dat door php wordt gegenereerd, omdat er een database aan hangt
dat xml bestand verwijst naar de xsl stylesheet.
De xsl stylesheet genereerd html, waaronder een menu bestaande uit links. iedere link heeft een id. Aan de hand van de id moeten een aantal elementen uit de corresponderende node worden geladen.
bijv. Voor alle menu met attribuut id=1 selecteer de text uit de node(menu/naam/text)

<menu ID="1">
<naam>
<text>Nieuws</text>
</naam>
</menu>
<menu ID="2">
<naam>
<text>bla</text>
</naam>
</menu>

  • Alantin
  • Registratie: December 2000
  • Laatst online: 23-11-2025

Alantin

Goh, wat zit je haar leuk...

Bedoel je zoiets: <xsl:for-each select="menu[ID = $myvar]"><xsl:value-of select="naam/text"/></xsl:for-each>

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

Pagina: 1