使用 xslt 排序对给定顺序进行排序

2023-12-12

我在用着

<xsl:sort />

对表中的行进行排序。的价值

@result 

可以是失败、忽略或通过。由于它是按字母顺序排序的,所以它不会按我想要的顺序出现。这是

失败的 - 被忽略 - 通过

我如何实现这一点我正在使用 xslt 1.0

这是我的代码

<xsl:apply-templates select="results/test-case">
<xsl:sort select="@result" /> 
</xsl:apply-templates>

在你的问题中,你要求的顺序与字母顺序一致,所以一个简单的<xsl:sort select="@result" />应该可以正常工作。但在需要非字母固定排序的情况下,我倾向于使用以下技巧。

首先定义变量中的顺序,条目由不属于任何选项的某些字符分隔:

<xsl:variable name="sortOrder" select="'|Passed|Failed|Ignored|'" />

Then use

<xsl:sort data-type="number" select="string-length(
    substring-before($sortOrder, concat('|', @result, '|')))" />

这里的技巧是substring-before($sortOrder, concat('|', @result, '|'))将是空字符串,当@result已通过,字符串"|Passed" when @result失败,并且字符串"|Passed|Failed" when @result被忽略。因此按数字排序length这些字符串将产生由下式给出的排序$sortOrder.

在这种特殊情况下,您甚至不需要concat, just

<xsl:sort data-type="number" select="string-length(
    substring-before($sortOrder, @result))" />

会做这项工作。这concat在一般情况下,是否可以处理排序中的一项是另一项的子字符串的情况。例如,对于订购'|Passed|Pass|Failed|Fail|'concat 是必需的,否则“Pass”将被视为与“Passed”相同,而不是在其后一致排序。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 xslt 排序对给定顺序进行排序 的相关文章

随机推荐

  • htaccess 指令后 POST 变为 GET

    我在 Apache htaccess 文件中使用以下指令隐藏 php 文件扩展名 RewriteCond THE REQUEST A Z 3 s php NC RewriteRule 1 R L NC RewriteCond REQUEST
  • 最大化窗口并使用 powershell 将其置于前面

    有没有办法从 powershell 中打开一个窗口 我尝试隐藏所有窗口 工作 并将 powershell 恢复 不工作 void System Reflection Assembly LoadWithPartialName Microsof
  • std::unordered_map 和由多个元素构建的键

    我想存储在包装网络连接的地图对象中 其中键应该是IP地址 端口号 我的问题是我应该如何处理带有两个元素的这样的键 我可以定义std unordered map
  • 未解决的依赖关系:com.typesafe.play#play-slick_2.10;0.6.0.1:找不到

    当我尝试在 Mac OS X Mavericks 上的 Play Framework 2 2 2 sbt 0 13 0 和 Scala 2 10 3 中使用 slick 或 play slick 时 出现未解决的依赖项错误 info Upd
  • WPF 中的依赖属性使用

    我很难找出依赖属性的充分理由 为什么 System Controls TextBox Text 属性是依赖属性而不是普通属性 作为依赖属性有什么好处 我想要完成的事情之一是将 ValidationRules 属性添加到我的 UserCont
  • Android N 要求 IDE 运行 Java 1.8 或更高版本?

    My XML布局未呈现并显示此错误消息 我已经在使用 Java 8 还使用 Gradle 中最新的构建工具 android compileSdkVersion android N buildToolsVersion 24 0 0 rc1 X
  • 示例请求:nant-contrib 的 任务

    谁能给我提供一个示例构建文件 演示如何使用 nant contrib 任务创建 Web 应用程序项目的安装程序 这个
  • 从 URL 下载文件到服务器

    嗯 这看起来很简单 确实如此 要将文件下载到服务器 您所需要做的就是 file put contents Tmpfile zip file get contents http someurl file zip 只有一个问题 如果您有一个大文
  • Phonegap 中 Android 的应用程序图标 [重复]

    这个问题在这里已经有答案了 我有一个 HTML5 Javascript 应用程序 并且我使用 PhoneGap 的构建服务为我的 Android 生成 APK 文件 我在我的 Android 上成功安装了 APK 文件 一切都很好 只是手机
  • 所有分区的eekToEnd并在Kafka消费者的自动重新平衡中幸存

    当消费者组 A 的 Kafka 消费者连接到 Kafka 代理时 我想查找所有分区的末尾 即使偏移量存储在代理端 如果有更多额外的消费者连接同一消费者组 他们应该获取最新存储的偏移量 我正在做以下事情 consumer poll timeo
  • 检测到互联网连接时下载数据

    我想在互联网连接可用时下载一些数据 包括 json 和图像 二进制数据 我有一个完整的工作代码可以做到这一点 问题是我已经在自定义应用程序类中编写了该代码 它会下载它并保存在本地 但是当应用程序启动时 互联网连接可能在那时不可用 因此 我想
  • 如何更改 iframe 的方向

    就我而言 我已将另一个组织 是的 我被授权这样做 开发的 html 游戏嵌入到网站中 页面和 HTML 游戏文件位于同一域中 该游戏是为支持 iPad 而开发的 但仅限横向 然而 在 iframe 中 它总是显示 请使用横向方向 的消息 即
  • 从命令行守护程​​序使用 MLMediaLibrary 时出现 XPC 错误

    我正在编写一个命令行守护程 序来从 iPhoto 读取图像 我可以初始化并加载MLMediaLibrary从使用 Xcode 项目创建工具创建的成熟 Cocoa 应用程序中得到的结果很好 但是 当我尝试从命令行工具 也在 Xcode 中创建
  • PHP脚本中的内存泄漏

    我有一个 php 脚本 它运行 mysql 查询 然后循环结果 并在该循环中还运行多个查询 sqlstr SELECT FROM user pred WHERE uprType 2 AND uprTurn turn ORDER BY upr
  • 如何根据动态变量进行匹配?

    是否可以匹配动态变量而不仅仅是文字 在此代码中 第一个match应该和注释掉的一样match number 0 being 0 and number 1 being 1 const NUMBERS i8 2 0 1 fn test let
  • 使用 Python 代替 AppleScript

    我经常使用 Applescript 来完成基本任务 例如打开和关闭程序 有时会更深入一些 例如运行特定 Xcode 程序的单元测试 我正在学习Python 我喜欢它 我还没有找到太多有关 AppleScript 和 Python 的文档 我
  • Hadoop 中的 setJarByClass()

    在 Hadoop 算法的驱动程序方法中的某个时刻 我们将作业链接到设置为 Mapper 和Reducer 的类的引用 例如 job setMapperClass MyMapper class job setReducerClass MyRe
  • 如何将 Python2 中的 all: print "string" 替换为:Python3 中的 print("string")? [复制]

    这个问题在这里已经有答案了 正如标题所说 如何将 Python2 中的 all print string 替换为 Python3 中的 print string I really希望他们使这一功能向后兼容 官方推荐使用 2to3 py 脚本
  • 使用实体框架自引用树的最有效方法

    所以我有一个 SQL 表 基本上是 ID ParentID MenuName Lineage Depth 最后两列是自动计算的 以帮助搜索 因此我们现在可以忽略它们 我正在创建一个具有多个类别的下拉菜单系统 不幸的是 我认为 EF 不能很好
  • 使用 xslt 排序对给定顺序进行排序

    我在用着