Hallo an Alle,
bin neu hier und am Verzweifeln mit einem Problem.
Nun wird das Problem komplett erklärt! Ich habe eine riesengroße XML-Datei, welche mit verschiedenen Stylesheets bearbeitet werden soll. Diese Stylesheet sind in einander eingebunden über <xsl:include> oder <xsl:import.
Der Aufruf der einzelnen Template geschieht über call-template oder apply über select und/oder mode.
Das Verknüpfen der einzelnen stylesheet funktioniert, beim Debuggen hüpf ich lustig hin und her, aber einige Templates oder andere Bedingungen werden ignoriert.
xhtml.xsl
Alles anzeigen
[/color]
nur ein Ausschnitt aus der body.xsl
Alles anzeigen
die XML-Datei stark vereinfacht
Die Headerinformation wird richtig verarbeitet und erzeugt, aber dann klemmt es irgendwo in der body.xsl.
Diese Anweisung /*/body wird nicht richtig verarbeitet. Ich habe auch mit zwei kleinen anderen XSL und XML probiert mit der gleichen Formulierung und da lief es.
Er ist zwar im richtigen Kontext, aber verarbeitet dann nicht Kind-Element der Wurzel nach einem call-template Aufruf.
PS: Falls notwendig kann ich noch andere Codebeispiele posten.
Vielen Dank im Voraus
bin neu hier und am Verzweifeln mit einem Problem.
Nun wird das Problem komplett erklärt! Ich habe eine riesengroße XML-Datei, welche mit verschiedenen Stylesheets bearbeitet werden soll. Diese Stylesheet sind in einander eingebunden über <xsl:include> oder <xsl:import.
Der Aufruf der einzelnen Template geschieht über call-template oder apply über select und/oder mode.
Das Verknüpfen der einzelnen stylesheet funktioniert, beim Debuggen hüpf ich lustig hin und her, aber einige Templates oder andere Bedingungen werden ignoriert.
xhtml.xsl
Quellcode
- [color=Blue]
- <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
- <xsl:include href="header.xsl"/>
- <xsl:include href="body.xsl"/>
- <xsl:template match="/">
- <xsl:element name="xhtml">
- <xsl:call-template name="header"/>
- <xsl:call-template name="body"/>
- </xsl:element>
- </xsl:template>
- <!--
- </xsl:stylesheet>
nur ein Ausschnitt aus der body.xsl
Quellcode
- <xsl:template name="body">
- <xsl:element name="body">
- <!-- processing the content of the xml file -->
- <xsl:apply-templates select="[b]/*/body[/b]">
- <xsl:with-param name="globalData" select="$globalData"/>
- <xsl:with-param name="style" select="$style"/>
- </xsl:apply-templates>
- </xsl:element>
- </xsl:template>
- <xsl:template match="[b]office:body[/b]">
- <xsl:param name="globalData" select="$globalData"/>
- <xsl:param name="style" select="$style"/>
- <!--Aufruf von anderen Templates-->
- <!--Erzeugen von XHTML-->
- </xsl:template>
die XML-Datei stark vereinfacht
Die Headerinformation wird richtig verarbeitet und erzeugt, aber dann klemmt es irgendwo in der body.xsl.
Diese Anweisung /*/body wird nicht richtig verarbeitet. Ich habe auch mit zwei kleinen anderen XSL und XML probiert mit der gleichen Formulierung und da lief es.
Er ist zwar im richtigen Kontext, aber verarbeitet dann nicht Kind-Element der Wurzel nach einem call-template Aufruf.
PS: Falls notwendig kann ich noch andere Codebeispiele posten.
Vielen Dank im Voraus