Cyberfuzzy: dateiname per xsl:call-template zurückbekommen und mit document() öffnen?

Beitrag lesen

Hallo,

ich habe ein Template, das mir einen Dateinamen berechnet. Dieses Template ersetzt bei einem Dateinamen die Dateinamenerweiterung durch .xml

Beispiel:
<xsl:call-template name="getFileName"><xsl:with-param name="xmlfilename" select="'testdatei.abc.jpg'"/></xsl:call-template>
liefert mir testdatei.abc.xml zurück.

Im Template wird der Dateiname dann per xsl:value-of ausgegeben.

Jetzt habe ich das Problem, dass ich diesen generierten Dateinamen in einem document() Tag verwenden möchte. Ich kann aber nicht ein Tag in ein Tag schreiben:

<xsl:value-of select="document('<xsl:call-template name="getFileName"><xsl:with-param name="xmlfilename" select="'testdatei.abc.jpg'"/>')"/>
-> funktioniert nicht.

Hat jemand eine Idee, wie ich das lösen könnte?

Danke schonmal.

Gruß
Cyberfuzzy
--
http://www.cyberfuzzy.com

P.S.: Hier noch das gesamte Template:

<xsl:template name="getFileName">
  <xsl:param name="xmlfilename"/>
  <xsl:param name="pos"/>
  <xsl:param name="originalfilename"/>

xsl:choose
   <xsl:when test="contains($xmlfilename,'.')">
    xsl:choose
     <xsl:when test="string-length($originalfilename) = 0">
      <xsl:call-template name="getFileName">
       <xsl:with-param name="xmlfilename" select="substring-after($xmlfilename,'.')"/>
       <xsl:with-param name="pos" select="string-length(substring-before($xmlfilename,'.'))"/>
       <xsl:with-param name="originalfilename" select="$xmlfilename"/>
      </xsl:call-template>
     </xsl:when>
     xsl:otherwise
      <xsl:call-template name="getFileName">
       <xsl:with-param name="xmlfilename" select="substring-after($xmlfilename,'.')"/>
       <xsl:with-param name="pos" select="$pos + 1 + string-length(substring-before($xmlfilename,'.'))"/>
       <xsl:with-param name="originalfilename" select="$originalfilename"/>
      </xsl:call-template>
     </xsl:otherwise>
    </xsl:choose>
   </xsl:when>
   xsl:otherwise
    <xsl:value-of select="concat(substring($originalfilename,1,$pos),'.xml')"/>
   </xsl:otherwise>
  </xsl:choose>
</xsl:template>