自定义排序 XSL?

Nan*_*nda 5 sorting xslt

这是我这样的 XML 结构

输入 :-

<MYDATA>
     <DETAILS>
       <DESCRIPTION>EASE</DESCRIPTION>
     </DETAILS>

     <DETAILS>
       <DESCRIPTION>COMPLEX</DESCRIPTION>
     </DETAILS>

     <DETAILS>
       <DESCRIPTION>SIMPLE</DESCRIPTION>
     </DETAILS>
</MYDATA>
Run Code Online (Sandbox Code Playgroud)

我想使用 xsl sort 像这样显示这意味着自定义排序我想显示第一个简单的第二个简单和第三个复杂

输出 :-

<MYDATA>

     <DETAILS>
       <DESCRIPTION>SIMPLE</DESCRIPTION>
     </DETAILS>


     <DETAILS>
       <DESCRIPTION>EASE</DESCRIPTION>
     </DETAILS>

     <DETAILS>
       <DESCRIPTION>COMPLEX</DESCRIPTION>
     </DETAILS>

        </MYDATA>
Run Code Online (Sandbox Code Playgroud)

Jos*_*ock 2

如果您知道可以执行的所有可能值,您可以执行一系列特定于条件的apply-templates调用:

<xsl:apply-templates select="Details[Description = 'Simple']" />
<xsl:apply-templates select="Details[Description = 'Ease']" />
<xsl:apply-templates select="Details[Description = 'Complex']" />
Run Code Online (Sandbox Code Playgroud)

因此,如果您知道想要它们的顺序并且潜在的选项不会改变,它将按照您apply-templates设置的规则的顺序输出它们。

当然,如果比这更复杂,您可以考虑在数据端存储排序顺序并将其包含在您的 XSL 中,以便您可以按此排序。