如何对元素进行排序并将它们存储在变量中,XSLT

2023-12-12

我想知道是否可以先对一些元素进行排序并将它们(已排序)存储在变量中。我需要引用它们认为 XSLT 这就是为什么我想将它们存储在变量中。

我试图执行以下操作,但似乎不起作用

<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
 version="1.0">

<xsl:variable name="deposits">
  <xsl:for-each select="/BookingCostings/MultiDeposits">
    <xsl:sort select="substring(@DepositDate, 1, 4)" />
    <xsl:sort select="substring(@DepositDate, 6, 2)" />
    <xsl:sort select="substring(@DepositDate, 9, 2)" />
 </xsl:for-each>
</xsl:variable>

我试图对元素进行排序@DepositDate以“yyyy-mm-dd”格式并将它们全部存储在$deposits多变的。这样以后我就可以使用它们来访问它们$deposits[1].

我将不胜感激任何帮助和提示!

多谢!


  1. Using XSLT version 2.0你可以用perform-sort并告诉你的变量是一系列的类型MultiDeposits使用as keyword (as="element(MultiDeposits)+")
  2. 由于您的数据已经为 yyyy-mm-dd 您可以避免使用子字符串来获取日期的每个部分并直接在字段上使用排序

使用此示例 xml:

<?xml version="1.0" encoding="ISO-8859-1"?>
<BookingCostings>
  <MultiDeposits depositDate="2001-10-09">1</MultiDeposits>
  <MultiDeposits depositDate="1999-10-09">2</MultiDeposits>
  <MultiDeposits depositDate="2010-08-09">3</MultiDeposits>
  <MultiDeposits depositDate="2010-07-09">4</MultiDeposits>
  <MultiDeposits depositDate="1998-01-01">5</MultiDeposits>
</BookingCostings>

并使用 XSLT 2.0 版表:

<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

 <xsl:template match="/">
 <html>
  <body>

  <xsl:variable name="deposits" as="element(MultiDeposits)+">
   <xsl:perform-sort select="BookingCostings/MultiDeposits">
    <xsl:sort select="@depositDate"/>
   </xsl:perform-sort>
  </xsl:variable>

  first date:<xsl:value-of select="$deposits[1]/@depositDate"/>,
  last date:<xsl:value-of select="$deposits[last()]/@depositDate"/>

  </body>
 </html>
 </xsl:template>

</xsl:stylesheet>

输出将是:

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

如何对元素进行排序并将它们存储在变量中,XSLT 的相关文章

  • 如何创建 heat.exe 收集的文件的快捷方式?

    使用 WiX Toolset 3 10 并尝试创建已使用 WiX Toolset 收获的某些文件的快捷方式heat exe效用 如 WIX bin heat exe dir SourceDir nologo platform x64 ke
  • 加载 XSLT 文件时解析相对路径

    我需要使用 Apache FOP 进行 XSL 转换 我的代码如下 Setup FOP Fop fop fopFactory newFop MimeConstants MIME PDF out Setup Transformer Sourc
  • 您应该通过属性访问同一类中的变量吗?

    如果您有一个获取和设置实例变量的属性 那么通常您总是使用该类外部的属性来访问它 我的问题是你也应该在课堂上这样做吗 如果有的话 我总是使用该属性 即使是在班级内 但我想听到一些支持和反对的论据 以确定哪个是最正确的以及为什么 或者这只是项目
  • Android 日期/时间显示 0 而不是 12

    我想知道下面的代码有什么问题 Assign hour set in the picker c set Calendar HOUR selectedHour c set Calendar MINUTE selectedMinute For a
  • Java 中的引用变量里面有什么?

    我们知道对象引用变量保存表示访问对象的方式的位 它不保存对象本身 但保存诸如指针或地址之类的东西 我正在阅读 Head First Java 第 2 版 一书 书中写道 第 3 章第 54 页 在 Java 中我们并不真正知道什么是 在引用
  • 安卓应用安全

    我想开发一个用户数据非常敏感的应用程序 我是开发新手 所以不确定以下内容 技术对于安全或高效来说是必要的 请留下您的评论 提前致谢 为了额外的安全性 我们可以避开市场 游戏商店 并将应用程序安装在个人设备上 它会让它更安全吗 我必须在设备上
  • 重新审视混合字符串值的字母数字排序

    请注意 我之前提出了一个非常相似的问题 但要求已发生变化 对混合字符串值进行字母数字排序 https stackoverflow com questions 3842719 alphanumeric sort on mixed string
  • C# 排序列表 - 快速,具有可移动、重复的键

    我制作了一个带有压缩机制的应用程序 需要我自己的字典 我的应用程序中的每个 cicle 都会将新元素添加到 myDictionary 中并更新 向 myDictionary 中的一些先前元素添加一个字符 我用普通列表和快速排序函数来做到这一
  • mysql 日期与 date_format 的比较

    我用谷歌搜索并尝试了几种方法来比较日期 但不幸的是没有得到预期的结果 我的当前记录状态如下 mysql gt select date format date starttime d m Y from data date format dat
  • g++ 变量名有长度限制吗?

    看标题 简短回答 No 长答案 是的 它必须足够小才能适合内存 但否则就不行 不是真的 如果有一个内置的限制 我不相信有 那么它太大了 你真的很难达到它 事实上 你让我很好奇 所以我创建了以下 Python 程序来生成代码 usr bin
  • 如何在 XAML 中定义变量?

    我在 XAML 中有以下两个按钮
  • 如何从对象文字数组中切片数组?

    我有这个数组 其中每个索引都包含一个对象文字 所有对象字面量都具有相同的属性 某些对象文字对于给定属性具有相同的值 我想创建一个包含only那些对象文字 我的想法是对数组进行排序 并将其切片成一个新数组 这是数组 var arr arr 0
  • 如何使用 Core Data (iPhone) 存储 CLLocation?

    我试图保存一个位置 然后使用 Core Location MapKit 和 Core Data 框架在地图上检索该位置 我所做的只是创建了名为 POI 的实体 并添加了诸如纬度 双精度类型 经度 双精度类型 等属性以及其他一些属性 简而言之
  • 如何从日期中获取微秒?

    我正在尝试从 a 中获取微秒Date 但我不能 Date date new Date No Date仅存储毫秒精度的值 如果您想要微秒精度 您可能需要看看JSR 310 http sourceforge net apps mediawiki
  • 使用xsl获取文件名

    如何使用 xsl 1 0 获取文件名 I tried
  • 我可以合法地写入常量向量指向的数据吗?把它分类?

    我有一个常量整数向量const vector
  • 如何按布尔值对数组进行排序

    我有一个看起来像这样的数组 array array foo gt true array foo gt false array foo gt true array foo gt true array foo gt false 有没有一种简单的
  • PHP 日期/时间格式,需要一些帮助

    你能帮我使用 PHP 格式化以下日期吗 变量 start 包含以下日期 这个日期 Wed Feb 01 2012 05 00 00 GMT 080 应该成为 2012 02 01T13 00 00 我知道如何使用基本的 PHP 日期 时间格
  • php 数组用重音符号排序

    我用它来根据姓氏排序 usort fb friends data custom sort function custom sort a b return a last name gt b last name foreach fb frien
  • 在 PHP 中获取日期和数字工作日

    我正在用 PHP 开发一个应用程序 我需要使用日期和工作日的数字表示 我尝试过以下方法 today date Y m d number date N strtotime today echo Today today weekday numb

随机推荐

  • Linux 在同一个 CSV 文件中将一列拆分为两个不同的列

    Closed 这个问题是无关 目前不接受答案 您好 我有一个包含以下条目的 csv 文件 11 22 13 aa bb cc ww kk ll 请建议我一个 Linux 命令或脚本 它可以在同一文件中将列分成 3 列 如下所示 11 aa
  • C# P\Invoke DLL 没有 C++ 的入口点?

    我有一个 C Dll TheFoo dll 其方法为 Foo 我只需调用以下命令即可访问使用此方法的其他 C 代码 Foo 我相信该方法确实具有 declspec dllexport 因此 根据我对 P Invoke 的阅读 我认为我应该能
  • PHP 替代控制结构有什么缺点吗?

    我一直在与PHP无需任何模板即可生成 HTML 的代码 而且其结构非常混乱且难以阅读 大幅改进我注意到的流程的一种方法是使用 endif代替 在某些情况下会阻塞以提高可读性 看http php net manual en control s
  • 适用于 Android 的 libjpeg-turbo

    I need libjpeg turbo对于安卓NDK 有人设法将其编译为 a 静态 lib 吗 我已经尝试了几次 但它只给了我很多错误 安装Android NDK 以下说明经过验证r8b 老版本可能有问题 我不知道 获取 Android
  • 如何在linux上运行aout?

    问题是如何在 Linux 系统上执行 aout format 二进制文件 我的意思是旧格式 例如在迁移到 ELF 之前在 FreeBSD 上使用的格式 是否有可能在没有额外编码的情况下做到这一点 是否有一些现有的解决方案 也许它应该是 Li
  • Laravel 8 - 外键约束的形成不正确

    我不知道出了什么问题 因为我对此很陌生 Product Model class Product extends Model use HasFactory public function store return this gt belong
  • Heroku —“很抱歉,出了点问题”

    嗨 我对 Heroku 还很陌生 我已经完成了我的应用程序的一部分 目前我在本地工作 但我想部署到 Heroku 当我打字时heroku logs我懂了 2012 07 30T16 36 27 00 00 app web 1 DEPRECA
  • 在 Firebase 中创建用户时出现错误

    所以我正在关注精明的应用程序教程以学习 Vue js 本教程使用 Firebase 和 Firestore 由于 Firestore 处于 Beta 阶段 正如教程所述 因此可能会发生变化 我认为这里可能就是这种情况 无论如何 我正在尝试注
  • 在 Sweave 中制作扁平化 pdf

    因此 我正在使用 Sweave 创建 pdf 其中包含一些带有大量点的图表 我可以很好地获取 pdf 但它似乎用大量图层创建了它 因此很难在 Acrobat 或 Reader 中打开该文件 当我这样做时 我确实可以看到文档上加载的点 有没有
  • Postgres 是否提供刷新缓冲区缓存的命令?

    你好 有时我需要做一些 SQL 调优任务 我通常在我的测试数据库上做这样的测试 当我执行一条sql语句后 我想刷新包含SQL的缓冲区缓存 语句和sql结果 就像Oracle中的命令 Alter system flash buffer cac
  • 如何添加和删除CSS类

    如何删除CSS默认类 这是我的div div 这是我的 css 类 messageContainer height 26px color FFFFFF BACKGROUND COLOR 6af VERTICAL ALIGN middle T
  • 身份管理/SSO 解决方案? [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 目前不接受答案 您对基本的集中式身份管理 SSO 服务有何建议 它必须是开源的 具有可插入的身份管理器 例如 LDAP DB openID 等 并提供一系列适当的
  • 生成新的 Nestjs 模块会导致错误:无法执行命令

    我使用带有 M1 芯片的 MacOS monterey 作为操作系统 使用以下命令安装 NestJS cli sudo npm install g nestjs cli 使用创建新的 Nest 项目时nest new message一切正常
  • 使用 XSLT 合并相邻的兄弟节点

    我有一个问题让我头疼极了 请帮我 输入是 p class section section 1 p p class code some code p p class code following code p p class code fol
  • 如何在Javascript中深度复制(克隆)具有数组成员的对象?

    介绍 我有一个班级Persons包含一个数组Person和功能 function Persons this mItems Array of Objects Person Persons prototype calculateScores f
  • JavaScript 中未声明变量的用法

    如果我们尝试使用未声明但允许为其设置值的变量 为什么 JavaScript 会抛出引用错误 e g a 10 creates global variable a and sets value to 10 even though its un
  • 使用 Maven 运行多个类

    我有一个包含多个类的包 每个类都封装了一个可执行程序 即带有 main 方法 即 com myorg examples classA com myorg examples classB etc 所有类都属于同一个包 com myorg ex
  • 为什么通过泛型类型映射闭集不允许解析重复?

    In 这段 TypeScript 代码 也在下面重复 有一个映射类型 type DRYObjectModelMap PlanetaryBodyClass in keyof FieldNameWithValueMap ObjectModel
  • 如何将分隔的字符串转换为表格布局?

    我有一个包含值的字段 CM45024 CM45025 CM45026 我想使用子报告将其分成多个项目 我的 jrxml 来源是
  • 如何对元素进行排序并将它们存储在变量中,XSLT

    我想知道是否可以先对一些元素进行排序并将它们 已排序 存储在变量中 我需要引用它们认为 XSLT 这就是为什么我想将它们存储在变量中 我试图执行以下操作 但似乎不起作用