23 Mayıs 2010 Pazar

XSLT 1.0 Split İşlemi

Aşağıdaki kod recursive (yinelemeli) method ile XML dosyasında belirli bir karakter ile birbirinden ayrılarak oluşturulmuş bir elementin içeriğini (ör: <photos>1.jpg|2.jpg|3.jpg|</photos>) aynı karakterden (|) yararlanıp ayırarak (split) yeni içeriğin kullanılmasına bir örnek [1]:

[sourcecode language="xml"]

<xsl:template name="output-tokens">
<xsl:param name="list" select="/album/photos"/>
<xsl:variable name="first" select="substring-before($list, '|')" />
<xsl:variable name="remaining" select="substring-after($list, '|')" />
<xsl:if test="$first">
<img src="{$first}" width="240" height="155"/>
</xsl:if>
<xsl:if test="$remaining">
<xsl:call-template name="output-tokens">
<xsl:with-param name="list" select="$remaining" />
</xsl:call-template>
</xsl:if>
</xsl:template>

[/sourcecode]

<xsl:call-template name="output-tokens"/> ile şablon, XSL içinden çağrılarak çalıştırılıyor.

Kaynaklar:
[1] http://stackoverflow.com/questions/136500/does-xslt-have-a-split-function

Hiç yorum yok:

Yorum Gönder