そこで、XMLフィードをHTMLに変換します。そうすることで、エンドユーザーは3つのカラースキームから1つを選択できるようになります。選択した配色に応じて、XMLをレンダリングするcall-templateコマンドのパラメーターに値を割り当てようとしています。
私はXSLにかなり慣れていないので、より良い方法論を自由に指摘してください
これが私のコードの例です:
<xsl:template match="/">
<xsl:variable name="basic_head_title_color">#414141</xsl:variable>
<xsl:variable name="basic_head_title_size">18px</xsl:variable>
<xsl:variable name="basic_head_desc_color">#8b8b8b</xsl:variable>
<xsl:variable name="contrast_head_title_color">#ffffff</xsl:variable>
<xsl:variable name="contrast_head_title_size">18px</xsl:variable>
<xsl:variable name="contrast_head_desc_color">#e1e1e1</xsl:variable>
<xsl:variable name="black_head_title_color">#ffffff</xsl:variable>
<xsl:variable name="black_head_title_size">18px</xsl:variable>
<xsl:variable name="black_head_desc_color">#e1e1e1</xsl:variable>
<xsl:when test="$display_theme = 'basic'" >
<xsl:variable name ="chosen_head_title_color" select="basic_head_title_color"/>
<xsl:variable name ="chosen_head_title_size" select="basic_head_title_size"/>
<xsl:variable name ="chosen_head_desc_color" select="basic_head_desc_color"/>
</xsl:when>
<xsl:when test="$display_theme = 'contrast'" >
<xsl:variable name ="chosen_head_title_color" select="contrast_head_title_color"/>
<xsl:variable name ="chosen_head_title_size" select="contrast_head_title_size"/>
<xsl:variable name ="chosen_head_desc_color" select="contrast_head_desc_color"/>
</xsl:when>
<xsl:when test="$display_theme = 'black'" >
<xsl:variable name ="chosen_head_title_color" select="black_head_title_color"/>
<xsl:variable name ="chosen_head_title_size" select="black_head_title_size"/>
<xsl:variable name ="chosen_head_desc_color" select="black_head_desc_color"/>
</xsl:when>
<xsl:call-template name="render_xml">
<xsl:with-param name="head_title_color" select="chosen_head_title_color" />
<xsl:with-param name="head_title_size" select="chosen_head_title_size" />
<xsl:with-param name="head_desc_color" select="chosen_head_desc_color" />
</xsl:call-template>
</template>