アプリ版:「スタンプのみでお礼する」機能のリリースについて

いつも勉強させていただいております。
今回は質問をさせていただけないでしょうか。
それでは、よろしくお願いします。

下記のような感じで、アルファベット一文字づつ処理をしたいと思っています。
このような、処理はできますでしょうか?
XMLにa-zの文字を入れておいて、各ノードのループで処理をすれば可能かと思いますが、
XMLが変えられないので、それ以外の方法を考えています。

下記はイメージですから、動作はしません。
<xsl:for-each select="'abcdefghijklmnopqrstuvwxyz'">
<!-- 下記により一文字づつ処理をする -->
<xsl:call-template name="PutAlphabetHref" >
<xsl:with-param name="sAlpha" select="substring(........)" />
</xsl:call-template>
</xsl:for-each>

A 回答 (1件)

この結果がどうなるか考えると面白いかも。



<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:output method="xml" indent="yes"/>
<xsl:template match="/*">
<hoge>
<xsl:call-template name="stringiteration">
<xsl:with-param name="current" select="'abcdefghijklmnopqrstuvwxyz'" />
</xsl:call-template>
</hoge>
</xsl:template>
<xsl:template name="stringiteration">
<xsl:param name="current" />
<fuga><xsl:value-of select="substring($current,1,1)" /></fuga>
<xsl:if test="string-length($current) > 1">
<xsl:call-template name="stringiteration">
<xsl:with-param name="current" select="substring($current,2)" />
</xsl:call-template>
</xsl:if>
</xsl:template>

</xsl:stylesheet>
<!-- XSLTの変数は同じ変数に何度も代入できないから再帰をうまく使う。-->
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!