Hi
hab grad nen kleines Denkproblem, hoffe hier kann mir geholfen werden.
Ich habe eine Daten.xml, eine Template.xml und eine Transform.xsl.
In der Template datei werden Formulare und aussehen beschrieben. In der Daten.xml stehen die eingetragenen Werte einzelner Formularelemente. Die Transform.xsl transformiert das ganze dann in html für die darstellung.
Da eine Templatedatei von mehreren Datendateien verwendet wird, ist die Daten.xml die aufrufende Datei, welche das xsl einbindet.
Im xsl wird jedoch sofort die Template.xml eingebunden (pfad definiert in Daten.xml), da das template ja für die ausgabe benötigt wird.
Nun wird das Template transformiert und das html formular erstellt. Wie greife ich aber an der Stelle wo ich die Datenzuordnung machen will wieder auf meine Daten.xml zu?
Ganz grobe Geschichten wie '<xsl:value-of select="//Date[@ID = $tempID]"/>' führen zu keinem Ergebnis. (bin wohl in dem Moment noch im anderen document)
hier mal ein kleiner dirty Abriss des ganzen:
***** zeigt den Knackpunkt. Date ist ja in der aufrufenden Daten.xml definiert, an dieser Stelle befinden wir uns jedoch in Template.xml.
Ich muss also den Bezug zu Daten.xml wieder herstellen. Dies geht jedoch nicht per document(), da Daten.xml aus einer Datenbank geholt wurde und nicht als referenzierbare Datei vorliegt.
Weitere Einschränkungen sind, dass das Ganze Offline (also ohne Serverseitige Sprachen) und somit mit dem XSL Prozessor des Browsers funktionieren soll.
Hm, hoffe es verständlich erklärt zu haben, und hoffe auf Hilfe.
Grüße, ich
hab grad nen kleines Denkproblem, hoffe hier kann mir geholfen werden.
Ich habe eine Daten.xml, eine Template.xml und eine Transform.xsl.
In der Template datei werden Formulare und aussehen beschrieben. In der Daten.xml stehen die eingetragenen Werte einzelner Formularelemente. Die Transform.xsl transformiert das ganze dann in html für die darstellung.
Da eine Templatedatei von mehreren Datendateien verwendet wird, ist die Daten.xml die aufrufende Datei, welche das xsl einbindet.
Im xsl wird jedoch sofort die Template.xml eingebunden (pfad definiert in Daten.xml), da das template ja für die ausgabe benötigt wird.
Nun wird das Template transformiert und das html formular erstellt. Wie greife ich aber an der Stelle wo ich die Datenzuordnung machen will wieder auf meine Daten.xml zu?
Ganz grobe Geschichten wie '<xsl:value-of select="//Date[@ID = $tempID]"/>' führen zu keinem Ergebnis. (bin wohl in dem Moment noch im anderen document)
hier mal ein kleiner dirty Abriss des ganzen:
Code:
<xsl:for-each select="document($tmpl_filename)/Layout/Group"> <xsl:attribute name="value"> <xsl:variable name="tempID" select="./@ID"/> <xsl:value-of select="$tempID"/> ****** <xsl:value-of select="//Date[@ID = $tempID]"/> </xsl:attribute> </xsl:for-each>
Ich muss also den Bezug zu Daten.xml wieder herstellen. Dies geht jedoch nicht per document(), da Daten.xml aus einer Datenbank geholt wurde und nicht als referenzierbare Datei vorliegt.
Weitere Einschränkungen sind, dass das Ganze Offline (also ohne Serverseitige Sprachen) und somit mit dem XSL Prozessor des Browsers funktionieren soll.
Hm, hoffe es verständlich erklärt zu haben, und hoffe auf Hilfe.
Grüße, ich
Comment