XSLT で行をマークあっぴ
汎用っぽいテンプレ作っていたら、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>
正規表現使いたい……
関連エントリー
- コメントの XML 最初の頃だいぶ適当でここら辺の考えが甘かったわけで、オリジナルを保持することを考えなきゃなぁとか思った。今のところホワイトスペースで段落の区...
- サイト全体を XML + XSLT ? サイト全体を XML データをもとにして XSL 変換したほうが楽っぽいなぁ。辞書とか、ヘッダ・フッタとかの共通部分を完全に一箇所にまとめら...
- ruby-xslt 0.9.1 ちゃんとエラークラス吐くバージョンがリリース。kiyoya さんのパッチ。 ruby extconf.rb --enable-error-h...
- XSLTという関数型言語 ブラウザの安全性を高めるための XSLT の削除とかいうことで、つまりブラウザネイティブでの XSLT のサポートは消えるので、ちょっと哀し...
- namazu のカスタマイズ テンプレートに XSLT を使う namazu.cgi の代替を書いて置き換えた。これで namazu だけ HTML4.01 だったり、適...