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>