Hallo,
ich habe den Fehler gefunden. der Fehler lag nicht in der XSL, sondern in der XML Datei.
Der Umbruch ist nicht als Zeichen erkennbar und es funktioniert keine Verarbeitung mit normalize-space() oder xsl:strip-space.
Den Satz verstehe ich nicht.
Irgendwie kommt mir das seltsam vor, da man doch gelernt hat, dass Umbrüche keine Auswirkungen haben, bis auf eine Ausgabe mit <pre>. Hat da jemand ne Erklärung dafür?
<pre> (und HTML) hat in der Hinsicht nichts mit XML zu tun.
<xsl:variable name="fntNr" select="substring(.,1,1)" /> wählt '1', '2', '3', '4' etc,
<Fußnotentext>
<Superscript/>
2 zweiter Text
</Fußnotentext>
Hier startet der Inhalt vom Fußnotentext mit einem Zeilenumbruch (und weil der Inhalt aus Unterlement und PCDATA besteht, nimmt der Prozessor "mixed content" an und berücksichtigt ihn.)
Daher konnte das:
<xsl:value-of select="substring-after(/Sect//Footnote[Fußnotentext[starts-with(., $fntNr)]]/Fußnotentext,' ')"/>
eben nicht stimmen, weil das erste Zeichen hier der Umruch ("000A" (
)) und nicht 1,2,3... war.
Grüße
Thomas