问题标签 [xslt-grouping]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
423 浏览

xslt - 将部分父节点复制到子节点 XSLT

我想将节点从父节点复制到子节点。我不确定如何实现这一点。

我的源xml

我想得到输出

我想要 XSLT 1.0 中的解决方案。

我想将这些节点复制到子节点

谢谢。

0 投票
1 回答
1631 浏览

xslt - XSLT 子节点 从父节点复制

我想将节点从父节点复制到子节点。我不确定如何实现这一点。

我的源xml

我想得到输出

我想要 XSLT 1.0 中的解决方案。

我想将这些节点复制到子节点

谢谢。

0 投票
1 回答
320 浏览

xslt - 密钥在 muenchian 分组中的工作原理

我还没有找到关于在 xslt 中进行 muenchian-grouping 时如何生成密钥的答案。我发现的示例都有非常简单的 xml 文件。给定以下 xml 文件:

我想做的是对每批货物中每个销售代码的订单行进行分组。

在我的 xslt 文件中,我将密钥定义如下:

在创建 xml 文件的第一部分后,我执行以下操作:

我希望 xml 文件将从当前<shipment> 节点解析,并且构建的密钥将仅使用<order-line> 节点进行该特定装运。但相反,我在文件中得到了三个<shipment> 包含所有<order-line> 节点的节点。因此,似乎在创建密钥时总是从根目录解析 xml 文件?是这样吗?有没有解决的办法?

0 投票
1 回答
709 浏览

xslt - XSLT 1.0:使用键对唯一值进行排序,但有例外

我有以下简化的 XML 结构:

我需要根据“Qualifierstring”和“revenueCenter”对记录集(R)进行分组。我想出了这个完美运行的 XSLT:

我定义一个键并选择唯一的项目,构建组并处理记录集 (R)。

但是现在我如何定义密钥以便将“revenueCenter”9992 和 9993 组合在一起?我必须设置2个不同的键吗?(但我怎么能在我的模板中使用 2 个键)或者我可以用值扩展现有的键吗?

XML 应如下所示:

2012 年 5 月 24 日更新: 我实际上想出了一个 XSLT,它可以满足我的需求,我使用了两个不同的键:

应用到源 XML 我得到这个正确的输出:

该解决方案有效,因为我知道我需要分别排除和分组哪些值。

0 投票
2 回答
248 浏览

xml - 使用 xslt 合并和重新排列 xml

我正在使用 XSLT 转换从 web 派生的 XML,并将其即时转换为表示为 output 的目标 xml 文件。即使尝试了很多,我仍然无法这样做,任何人都可以帮助我进行这种转换。

源 XML

所需输出

分组是基于 Code,[hd1,hd2,hd3] 这样具有相同 Code 和 [hd1,hd2,hd3] 的不同元素将被合并,并且只显示不同的字段,即。和。我也在使用 xslt 1.0 。

0 投票
1 回答
1270 浏览

xslt - XSLT 分组和删除重复项

我有以下 XML 输入文件:

我想生成以下 XML:

因此,输入 XML 中的键需要根据输入 XML 中的值节点的值在输出 XML 中进行分组。还需要删除重复项,输入 XML 包含值为 6718 的键两次,输出 XML 仅一次。

我将 XSLT 2.0 与 Saxon 9 HE 一起使用。

有人可以帮帮我吗?

[编辑]

0 投票
1 回答
8114 浏览

xml - 使用 Muenchian 方法对多个键进行 XSLT 分组

这是输入文件。

所有这些块都包裹在一个<allocfile>没有出现的标签中,不知道为什么?所有这些块都包裹在顶级元素<xml>中。

输出是

输入文件需要在多个key的基础上进行排序和分组。我继续使用该concat函数和 Muenchian 方法,但并没有从网上获得太多帮助。我正在使用 XSLT 1.0。

分组规则

  • 文件中的所有节点都将具有<hd1>值,1234..这将成为键的第一组,并在输出中显示为<Header1>

    • 分组的第二个关键是节点代码。具有相同值的节点被组合在一起。显示为。代码头
  • 第二个键是节点组G_H, FUN, oH, y。如果所有这些都具有相同的节点值,则它们将组合在一起。它在输出中显示为<Header2>

  • <alc>在节点, <No>, <DT>,上不会发生分组<AMOUNT>。它们在每个组中都有不同的值。

0 投票
1 回答
749 浏览

xslt - 在 group-starting-with in 下测试 2 个条件

我需要在每个组中测试 2 个可能标签中的 1 个。这可能吗?什么是正确的语法?

我试过“||” 但从解析器得到一个错误。我在 Oxygen 12.1 中使用 Saxon PE 9.3。

前任。

0 投票
2 回答
307 浏览

xml - xslt 按每个属性分组

我有多种类型的 xml 消息,我需要通过将多个节点分组到同一个父节点下来“压缩”(相同的父节点意味着它们共享相同的节点名称,并且声明的每个属性也是相等的)。例如:

请注意它们如何共享相同的 CodeTL 属性,最后 2 个共享相同的 CodeA、Start 和 End 属性,所以我需要使用 xslt 生成以下输出

这更清洁,并且根据使用它的应用程序,它可能会节省处理时间并节省空间。

我遇到的问题是我有不同类型的 xml 消息,它们具有不同的节点名称和属性(以及属性数量),但它们都共享我在这里展示的相同结构。这将是一种很好的通用方式来处理所有这些,但我会感谢 XSLT 来转换我提供的示例,这样我就可以为我需要发送的每条 xml 消息创建自定义代码。

0 投票
3 回答
1971 浏览

xml - 使用 XSLT 在 3 列中输出分组列表

我想在 3 列中输出分组结果。我没有使用表格,所以我想我的意思是并排显示 3 个结果部分(参见 HTML)。

我根据其中一个节点的值对结果进行了分组,并在一个标题下分组,该标题是节点的值。例如:

格式如下:

这很有效,我很满意。现在我要做的是并排创建 3 列 Depts 及其结果(即本例中的 Names)。我期待 9 个可能的部门,但这可能会在未来发生变化。

到目前为止,这是我的 XSLT(到目前为止,它所做的只是上面的格式,还没有在列上工作,我不知道如何解决这个问题):

任何帮助将非常感激!


肖恩的编辑

在与 OP 讨论之后,我认为这个用例说明了他想要什么。以下示例输入文档显示了 5 个部门,有 1 名或 2 名员工。节点的顺序并不重要。

用例 1:输入文档

输出将像这样进行转换(如下列表)。HTML 表格将由 3 列但只有 1 行构成。每个单元格都包含一个以部门名称为首的部门员工的 HTML 无序列表。每列包含大约三分之一的部门,最后一列在这方面参差不齐。从上到下然后从左到右阅读,部门应该按字母顺序排序。在每个部门内,员工应按字母顺序排列。

用例 1:输出文档