这是我这样的 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)
如果您知道可以执行的所有可能值,您可以执行一系列特定于条件的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 中,以便您可以按此排序。