我正在使用以下内容遍历节点组:
<xsl:for-each select="NewDataSet/VehicleDetail/Options/Option">
<xsl:choose>
<xsl:when test="string-length(.) > 40">
<div class="large">
<xsl:value-of select="."/>
</div>
</xsl:when>
<xsl:otherwise>
<div class="small">
<xsl:value-of select="."/>
</div>
</xsl:otherwise>
</xsl:choose>
</xsl:for-each>
我希望能够做的是将大项目(40 个字符 +(和小项目(40 个字符或更少(分组,如下所示:
<div class="largeItems">
<div class="large">Large Item</div>
<div class="large">Large Item</div>
<div class="large">Large Item</div>
<div class="large">Large Item</div>
<div class="large">Large Item</div>
</div>
<div class="smallItems">
<div class="small">Small Item</div>
<div class="small">Small Item</div>
<div class="small">Small Item</div>
<div class="small">Small Item</div>
<div class="small">Small Item</div>
</div>
谢谢。
尝试:
<div class="largeItems">
<xsl:for-each select="NewDataSet/VehicleDetail/Options/Option[string-length() > 40]">
<div class="large">
<xsl:value-of select="."/>
</div>
</xsl:for-each>
</div>
<div class="smallItems">
<xsl:for-each select="NewDataSet/VehicleDetail/Options/Option[string-length() <= 40]">
<div class="small">
<xsl:value-of select="."/>
</div>
</xsl:for-each>
</div>
或者,如果您希望减少代码重复:
<div class="largeItems">
<xsl:apply-templates select="NewDataSet/VehicleDetail/Options/Option[string-length() > 40]">
<xsl:with-param name="class" select="'large'"/>
</xsl:apply-templates>
</div>
<div class="smallItems">
<xsl:apply-templates select="NewDataSet/VehicleDetail/Options/Option[string-length() > 40]">
<xsl:with-param name="class" select="'small'"/>
</xsl:apply-templates>
</div>
然后:
<xsl:template match="Option">
<xsl:param name="class"/>
<div class="{$class}">
<xsl:value-of select="."/>
</div>
</xsl:template>
未经测试,因为既没有提供输入也没有提供上下文。