xsl:sort无法正常工作是礼物。这里可能有什么问题?
我正在尝试使用 java dom4j 库从 xml 数据渲染 html。虽然实际项目有多种排序标准,但我在这里对具体问题进行总结。
我有一些 xml 数据,例如:
<employee>
<name>
<![CDATA[test 1.8 - test]]>
</name>
<name>
<![CDATA[test 4 - test]]>
</name>
<name>
<![CDATA[Test 2 - test]]>
</name>
</employee>
我正在尝试使用带有 的 xsl 转换器对它们进行排序。用于排序的片段...
<xsl:for-each select="employee/name">
<xsl:sort select="name" case-order="upper-first"/>
...
预期输出订单:
Test 2 - test
test 1.8 - test
test 4 - test
我得到的输出订单:
test 1.8 - test
Test 2 - test
test 4 - test
首先,您的代码片段对
employee
进行排序,而不是对 name
进行排序。
现在,您得到的结果是对名称进行排序后的预期输出。如果您希望 Test 2 - test
的条目排在第一位,因为它以大写字母
T
开头,那么您需要执行以下操作:
<xsl:for-each select="name">
<xsl:sort collation="http://www.w3.org/2005/xpath-functions/collation/codepoint"/>
....
</xsl:for-each>
您将需要一个支持 XSLT 2.0 或更高版本的处理器。我不明白点或任何其他字符的存在与此有什么关系。