je voudrais produire un h1 tag h3 pour un en-tête en fonction de sa position de sectionétiquette d'en-tête en fonction de la position dans xml
le xml est au format
<sections>
<section>
<header>section 1 header</header>
<image alt="section 1 image alt">imagename.filetype</image>
<content>section 1 content</content>
</section>
<section>
<header>section 2 header</header>
<image alt="section 2 image alt">imagename.filetype</image>
<content>section 2 content</content>
</section>
<section>
<header>section 3 header</header>
<image alt="section 3 image alt">imagename.filetype</image>
<content>section 3 content</content>
</section>
</sections>
ma sortie voudrait être comme
<div>
<h1> section 1 header</h1>
<img alt="section 1 image alt" src="imagename.filename"/>
section 1 content
</div>
<div>
<h2> section 2 header</h2>
<img alt="section 2 image alt" src="imagename.filename"/>
section 2 content
</div>
<div>
<h3> section 3 header</h3>
<img alt="section 3 image alt" src="imagename.filename"/>
section 3 content
</div>
est-il un moyen simple de faire cela? des idées appréciées!
genre grâce Treemonkey
mise à jour:
<xsl:template mode="section" match="section">
<xsl:apply-templates mode="header" select="header">
<xsl:with-param name="position">h<xsl:value-of select="position()"/></xsl:with-param>
</xsl:apply-templates>
<img alt="{image/@alt}" src="{image}" />
<xsl:value-of select="content"/>
</xsl:template>
<xsl:template mode="header" match="header">
<xsl:param name="position">0</xsl:param>
<xsl:element name="{$position}"><xsl:value-of select="."/></xsl:element>
</xsl:template>
utilisant le xslt ci-dessus qui est la version légèrement mise à jour du post Khachik
Bonne question, +1. Voir ma réponse pour une solution complète qui est complètement dans l'esprit de XSLT (style push). :) –