如果值等于某个值,你可以在for-each循环中设置特定项的位置吗?我尝试了以下示例,但它不起作用:
<xsl:choose>
<xsl:when test='name = "Dining"'>
<xsl:value-of select="position()=1"/>
</xsl:when>
<xsl:otherwise>
[Normal position]
</xsl:otherwise>
</xsl:choose>
餐饮将始终显示在列表顶部,然后列表将正常呈现。
答案 0 :(得分:1)
您还没有提供输入XML的示例,或者显示您想要用它做什么,所以我猜一点。你可以尝试这样的事情:
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" indent="yes" omit-xml-declaration="yes"/>
<xsl:template match="@* | node()">
<xsl:copy>
<xsl:apply-templates select="@* | node()"/>
</xsl:copy>
</xsl:template>
<xsl:template match="root">
<xsl:copy>
<xsl:apply-templates select="Dining"/>
<xsl:apply-templates select="*[not(self::Dining)]"/>
</xsl:copy>
</xsl:template>
</xsl:stylesheet>
应用于以下XML时:
<root>
<Bathroom />
<Dining />
<Kitchen />
<Bedroom />
</root>
它产生:
<root>
<Dining />
<Bathroom />
<Kitchen />
<Bedroom />
</root>