Hi,
ich habe ein XML_Dokument und erzeuge, daraus n-Zieldateien.
Vereinfacht ist der Code wie folgt aufgebaut:
Nun das Problem. Im Wesentlichen funktioniert alles. Aber leider wird in der 1 Datei der gesamte Inhalt der Quelldateien transformiert. Die 2. Datei hat dann den Inhalt der 2.Seiten bis zum Schluß usw.
Ich habe die Templates Schritt für Schritt durch Laufen und den Fehler lokalisiert. Nach dem Erzeugen der letzten Datei werden die vorherigen Dateien abgeschlossen. So das die Datei der 1.Seiten die letzte Datei ist. Bei diesem "Rückwärtsgehen" ist mit auf gefallen, dass der jeweilige Knoten, der eigentlich mit <apply-templates select="descendant-or-self::node()> usw. in einer Extradatei gespeichert wurden. Auch in das vorhergehenden Dokument transformiert wird.
Ein einfaches Beispiel: Die Überschrift "2.Seite" soll auf der 2.Seiten stehen. wird auch auch in der 1.Datei erzeugt.
Existiert eine Möglichkeit ein Ende der Transformation der vorhergehenden Datei zu erzwingen. Oder wie muss ich das aufrufen.
PS: Sollten in dem Codebeispiel Fehler auftreten, bitte dezent überlesen. Ich habe versucht, es vereinfacht darzustellen, denn das richtige template ist etwas komplexer.
Gruß Jevo
ich habe ein XML_Dokument und erzeuge, daraus n-Zieldateien.
Vereinfacht ist der Code wie folgt aufgebaut:
Code:
<xsl:template name="create-new-page"> <xsl:param name="globalData"/> <xsl:result-document href="{$filename}"> <html xmlns="http://www.w3.org/1999/xhtml" xmlns:ops="http://www.idpf.org/2007/ops"> <xsl:element name="head"> <xsl:element name="title"> <xsl:value-of select="document('file:///c:/tmp/ops/OEBPS/meta.xml')//dc:title"/> </xsl:element> <link rel="stylesheet" type="text/css" href="styles.css"/> <xsl:element name="body"> <xsl:element name="div"> <xsl:attribute name="id" select="content"/> <xsl:attribute name="title" select="inhalt"/> <xsl:apply-templates select="descendant-or-self::node()"> <xsl:with-param name="globalData" select="$globalData"/> </xsl:apply-templates> <xsl:apply-templates select="following-sibling::node()"> <xsl:with-param name="globalData" select="$globalData"/> </xsl:apply-templates> </xsl:element> </xsl:element> </xsl:element> </html> </xsl:result-document> </xsl:template>
Ich habe die Templates Schritt für Schritt durch Laufen und den Fehler lokalisiert. Nach dem Erzeugen der letzten Datei werden die vorherigen Dateien abgeschlossen. So das die Datei der 1.Seiten die letzte Datei ist. Bei diesem "Rückwärtsgehen" ist mit auf gefallen, dass der jeweilige Knoten, der eigentlich mit <apply-templates select="descendant-or-self::node()> usw. in einer Extradatei gespeichert wurden. Auch in das vorhergehenden Dokument transformiert wird.
Ein einfaches Beispiel: Die Überschrift "2.Seite" soll auf der 2.Seiten stehen. wird auch auch in der 1.Datei erzeugt.
Existiert eine Möglichkeit ein Ende der Transformation der vorhergehenden Datei zu erzwingen. Oder wie muss ich das aufrufen.
PS: Sollten in dem Codebeispiel Fehler auftreten, bitte dezent überlesen. Ich habe versucht, es vereinfacht darzustellen, denn das richtige template ist etwas komplexer.
Gruß Jevo
Comment