Hallo
Vielleich hat jemand von euch eine Idee oder Hinweis.
Baue aus den bisherigen Fragen jetzt komplette Lösung zusammen
Ziel der Lösung:
Ich habe ein XML Dokument bei der jedes Element mit einer ID ausgestattet ist.
Zwei Strings werden per PHP an XSLT übergeben.
p_contextnodeID ist die ID des contextknoten
p_step wird der Schritt übergeben
Zu Testzwecken habe ich diese parameter im Stylesheet, ID bzw Schritt zugewiesen.
Ergebnis sollte ein über die URL gesteuerte/gefilterte Ausgabe des XML Dokumentes sein, welche als Basis den Contextknoten+Schritt verwendet.
vielen Dank
Vielleich hat jemand von euch eine Idee oder Hinweis.
Baue aus den bisherigen Fragen jetzt komplette Lösung zusammen
Ziel der Lösung:
Ich habe ein XML Dokument bei der jedes Element mit einer ID ausgestattet ist.
Zwei Strings werden per PHP an XSLT übergeben.
p_contextnodeID ist die ID des contextknoten
p_step wird der Schritt übergeben
Zu Testzwecken habe ich diese parameter im Stylesheet, ID bzw Schritt zugewiesen.
Ergebnis sollte ein über die URL gesteuerte/gefilterte Ausgabe des XML Dokumentes sein, welche als Basis den Contextknoten+Schritt verwendet.
Code:
<!-- ** * @NAME: SHOWSTEP * @DESC: Zeigt auf Basis eines Contextnode+Step welche aus der URL stammt- den Ergebnisbaum * * @V0.1: 2011.05.28 *--> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:exsl="http://exslt.org/common" xmlns:dyn="http://exslt.org/dynamic" extension-element-prefixes="dyn exsl"> <!-- contextnodeID aus URL als String uebergeben --> <xsl:param name="p_contextnodeID" select="'h-e59cc1ac-6855-11e0-b226-3e83d7addb43'"/> <!-- contextnode daraus bauen --> <xsl:param name="p_contextnode" select="//*[@id='$p_contextnodeID']"/> <!-- p_step aus URL als String uebergeben--> <xsl:param name="p_step" select="'*[2]'"/> <!-- aus String p_step wird eine dynamische String gebaut welche als "Schritt" verarbeited wird --> <xsl:param name="p_nodeset" select="dyn:evaluate($p_step)"/> <!-- Schritt wird verarbeitet und als nodeset in p_nodesetB gespeichert --> <xsl:param name="p_nodesetB" select="exsl:node-set($p_contextnode//$p_nodeset)"/> <xsl:template match="/"> <xsl:value-of select="count($p_nodesetB)"/>- <br/> <xsl:for-each select="$p_nodesetB">z <xsl:value-of select="node()"/><br/> </xsl:for-each> <br/> </xsl:template> </xsl:stylesheet>
vielen Dank
Comment