Tobel: Ungewolltes Leerzeichen nach Aufruf von apply-templates

Hallo

Ich habe folgende XML Datei:
<root>
 <test>
  <tagvor>Vor dem</tagvor>
  Text
  <tagdanach>und danach</tagdanach>
 </test>
</root>

Und folgendes XSL:
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format">
 <xsl:template match="/">
  xsl:apply-templates/
 </xsl:template>
 <xsl:template match="test">
  xsl:apply-templates/.
 </xsl:template>
</xsl:stylesheet>

Die Ausgabe sieht folgendermaßen aus:

Vor dem Text und danach .

Woher kommt das Leerzeichen zwischen dem Ende des Satzes und dem Punkt???

Gruß,

Tobel

  1. Hallo,

    Woher kommt das Leerzeichen zwischen dem Ende des Satzes und dem Punkt???

    Du hast ein Template für "test" und in diesem rufst du die Templates für die Knoten im "text" auf.
    Da es keine solche Templatest gibt,  greifen die default Templates: darunter auch der Template für Textknoten, zwischen </tagdanach> und </test> hast du einen Zeilenumbruch, dieser wird als whitespace gewertet und zu einem Leerzeichen konvertiert und mit text() in deinem Ergebnisdokument kopiert.

    Grüße
    Thomas

    1. Erstmal vielen Dank. Aber verhindere ich das denn jetzt? Wenn ich "Text" auch in ein Template packe, habe ich das gleiche Problem....

      1. Hallo,

        Erstmal vielen Dank. Aber verhindere ich das denn jetzt? Wenn ich "Text" auch in ein Template packe, habe ich das gleiche Problem....

        Das hängt davon ab was du für eine output format hast, was andere Templates für die Kindelemente von "test" machen etc. (Ich vermute du erzeugst eine xsl-fo Datei?)
        Eventuelle hilft ein <xsl:strip-space elements="test" />

        Grüße
        Thomas