汎用っぽいテンプレ作っていたら、XSLT だけで一行ごとに l 要素とかソレっぽいのでマークアップできることに気付いた……っていうかアレだ。
<xsl:template name="split"> <xsl:param name="value"/> <xsl:param name="splitter"/> <xsl:param name="element-name" select="'t:item'"/> <xsl:choose> <xsl:when test="contains($value, $splitter)"> <xsl:element name="{$element-name}"> <xsl:value-of select="substring-before($value, $splitter)"/> </xsl:element> <xsl:call-template name="split"> <xsl:with-param name="value" select="substring-after($value, $splitter)"/> <xsl:with-param name="splitter" select="$splitter"/> <xsl:with-param name="element-name" select="$element-name"/> </xsl:call-template> </xsl:when> <xsl:otherwise> <xsl:element name="{$element-name}"> <xsl:value-of select="$value"/> </xsl:element> </xsl:otherwise> </xsl:choose> </xsl:template>
<xsl:call-template name="split"> <xsl:with-param name="value" select="'aaa#x0a;bbbb#x0a;cccc#x0a;z'"/> <xsl:with-param name="splitter" select="'#x0a;'"/> <xsl:with-param name="element-name" select="'l'"/> </xsl:call-template>
正規表現使いたい……