Mon fichier XML est le suivant:
<xsl:template match="row">
<li class="rowClass ${className}">
<xsl:choose>
<xsl:when test="type = 'YESORNO'">
<xsl:variable name="className" select="rowTypeBoolean"/>
</xsl:when>
<xsl:when test="type = 'OPTIONS'">
<xsl:variable name="className" select="rowTypeOptions"/>
</xsl:when>
<xsl:when test="type = 'OPERATION'">
<xsl:variable name="className" select="rowTypeOperation"/>
</xsl:when>
<xsl:otherwise>
<xsl:variable name="className" select="rowTypeOther"/>
</xsl:otherwise>
</xsl:choose>
<span class="rowTitleClass">
<xsl:value-of select="rowtitle"/>
</span>
<br/>
<ul class="subLineListClass">
<xsl:apply-templates select="subLine"/>
</ul>
</li>
</xsl:template>
3 Réponses :
Vous devez l'ajouter sous la forme d'un attribut à l'élément:
<li>
<xsl:choose>
<xsl:when test="type = 'YESORNO'">
<xsl:attribute name="className">rowTypeBoolean</xsl:attribute>
</xsl:when>
<xsl:when test="type = 'OPTIONS'">
<xsl:attribute name="className">rowTypeOptions</xsl:attribute>
</xsl:when>
<xsl:when test="type = 'OPERATION'">
<xsl:attribute name="className">rowTypeOperation"</xsl:attribute>
</xsl:when>
<xsl:otherwise>
<xsl:attribute name="className">rowTypeOther"</xsl:attribute>
</xsl:otherwise>
</xsl:choose>
</li>
La solution la plus naïve serait d'utiliser Autre moyen serait d'avoir une carte en ligne (ou via avec ceci comme élément de niveau supérieur p> xsl: choisir code> instructions telles que ceci: FN: document () code>) Comme: p> <map:map xmlns:map="map">
<item type="YESORNO">rowTypeBoolean</item>
<item type="OPTIONS">rowTypeOption</item>
<item type="OPERATIONS">rowTypeOperation</item>
<item>rowTypeOther</item>
</map:map>
<xsl:variable name="map" select="document('')/*/map:map/*" xmlns:map="map"/>
Cette transformation: p> <ol>
<li class="rowTypeBoolean">
<rowTitle>RT1</rowTitle>
<rowType>yesorno</rowType>
<ul>
<li>subLine1Content</li>
<li>subLine2Content</li>
</ul>
<subLine>subLine2Content</subLine>
</li>
<li class="rowTypeOperation">
<rowTitle>RT2</rowTitle>
<rowType>operation</rowType>
<ul>
<li>subLine1Content</li>
<li>subLine2Content</li>
<li>subLine3Content</li>
</ul>
<subLine>subLine2Content</subLine>
<subLine>subLine3Content</subLine>
</li>
</ol>
Vous avez publié votre XML et votre sortie souhaitée. Pouvez-vous poster le XSL que vous rencontrez actuellement des problèmes?
Bonne question (+1). Consultez ma réponse pour une solution complète simple et évite le codage inutile de la logique de prise de décision.