ich mit der Verwendung von Vorlagen vertraut bin, die Schlüssel aus Attributen wie folgt (zB Schlüssel aus der Anwesenheit von foo
): wenn ein großen Teil der Inhalte vonWie zu implementieren, ohne
<xsl:template match="something[@foo]">
<xsl:template match="something[not(@foo)]">
jedoch Diese Vorlagen sind die gleichen, gibt es einen besseren Weg, der immer noch Vorlagen verwendet, da die Community scheint, sie zu bevorzugen? Oder ist die Lösung, einfach xsl:choose
zu verwenden. Es ist eindeutig vorzuziehen, keinen doppelten Code zu schreiben, der in beiden Vorlagen gepflegt werden muss.
EDIT: Hier ist mein spezifischer Satz von Vorlagen:
<xsl:template match="item[not(@format)]">
<td class="{current()/../@name}_col status_all_col">
<xsl:value-of select="current()"/>
<xsl:value-of select="@units"/>
</td>
</xsl:template>
<xsl:template match="item[@format]">
<td class="{current()/../@name}_col status_all_col">
<xsl:value-of select="format-number(current(), @format)"/>
<xsl:value-of select="@units"/>
</td>
</xsl:template>
und hier ist was ich zur Zeit wählt, habe mit:
<xsl:template match="item">
<td class="{current()/../@name}_col status_all_col">
<xsl:choose>
<xsl:when test="@format">
<xsl:value-of select="format-number(current(), @format)"/>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="current()"/>
</xsl:otherwise>
</xsl:choose>
<xsl:value-of select="@units"/>
</td>
</xsl:template>
Die Antwort auf den eigentlichen Inhalt der beiden Vorlagen abhängt. - PS Es ist nichts falsch daran, 'xsl: choose' zu verwenden. –
Ich habe meine spezifischen Vorlagen hinzugefügt. – Bryant