【发布时间】:2016-04-06 11:43:25
【问题描述】:
我需要切换元素,例如就像在这个 xml 中:
<configuration>
<sites>
<site name="site1"/>
<site name="site2" />
<site name="site3"/>
<site name="site4"/>
</sites>
</configuration>
到:
<configuration>
<sites>
<site name="site3"/>
<site name="site4" />
<site name="site1"/>
<site name="site2"/>
</sites>
</configuration>
通过 XSLT。任何人都可以帮助进行这种转变吗?
<xsl:template match="node()|@*">
<xsl:copy>
<xsl:apply-templates select="node()|@*"/>
</xsl:copy>
</xsl:template>
<xsl:variable name="site1" select="configuration/sites/site[@name='site1']" />
<xsl:variable name="site2" select="configuration/sites/site[@name='site2']" />
<xsl:template match="site[@name='site1'"/>
<xsl:template match="site[@name='site2'"/>
<xsl:template match="configuration/sitecore/sites">
<xsl:apply-templates select="node()|@*"/>
<xsl:value-of select="$site1"/>
<xsl:value-of select="$site2"/>
</xsl:template>
我尝试做的是,我不确定是否可以使用某个变量来存储所有特定元素内容,删除节点的适当元素副本并将其附加到末尾。
谢谢
Krp0
【问题讨论】:
-
规则是什么?查找
xsl:sort... -
我需要 site1/site2 在 site3/site4 的定义之后。必须是输出 xml 中的最后一个。我有很多这个网站的定义,我用它们的名字来识别它们。
-
请尝试使用 XSLT 更新您的问题。这是一个以(如果没有的话)开头的参考:XSLT Custom Sort