问题标签 [muenchian-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.
xslt - 这种合并和重复数据删除方法有什么问题?
鉴于此源文件:
以及作为可用环境之一的参数,我想最终得到一个合并和重复数据删除的节点集,保留最具体的值。因此,对于“产品”:
我对在 XSLT 1.0 中使用键非常陌生,我想出了这个适用于“prod”的样式表,但不适用于“dev”或“qa”:
这是我的目标方法:
- 使用联合将所有相关
<item.../>
节点合并到节点集中|
@grp
按和@prop
属性对这个节点集进行分组- 将最后一个节点保留在任何结果组中(重复数据删除)
由于我是键新手,我只能说我认为这段代码,
正在last()
从重复项的节点集中选择节点,但是当使用“dev”或“qa”运行时,我得到以下信息:
我检查了all-items
每个环境参数的中间变量,看来至少有那么多工作正常。
如果我移动<group name="qa"/>
到底部,例如:
然后用'qa'运行它:
那么,为什么<group name="...">...</group>
我选择的位置很重要?具体来说,为什么它只在最后一个位置起作用,我如何使它适用于任何位置?
编辑 1
当我从(对于任何环境)中隔离数据$all-items
并将其放入自己的文件中时,XSL 可以正常工作。以下示例是全局变量和“开发”的联合:
这个 XSL:
结果是:
那么,现在它似乎取决于变量all-items
?
谢谢你。
xml - 使用 XSLT muenchian 分组计算运动队排名(胜/负)?
几天来,我一直在努力确定如何获取比赛结果(球队和最终得分)的 XML 文件并生成球队排名列表,其中显示每支球队以及他们赢、输或平的次数。结果也应该按总胜数排序,但我什至找不到计算胜负数的好方法,更不用说按结果排序了。我知道它必须涉及 muenchian 分组,并且我已经编写了找到所有不同团队的部分,但我很难从那里去哪里。任何帮助将不胜感激。
游戏.xml
游戏.xsl
xslt-1.0 - 不要在 XSLT 1.0 中使用 sum 函数去除“Group By”中的“header”
我从 XSLT 输出中得到以下结果。我不想要结果中标题中的 InvoiceNo、InvoiceDate 和 DueDate。只需要带有 PC Quantity TotalAmount 的行,而不是第一行。
我的 xml 文件看起来像这样。
我的 XSLT 文件是这样的。
我在做什么错?
问候, 米凯尔
xslt - 密钥在 muenchian 分组中的工作原理
我还没有找到关于在 xslt 中进行 muenchian-grouping 时如何生成密钥的答案。我发现的示例都有非常简单的 xml 文件。给定以下 xml 文件:
我想做的是对每批货物中每个销售代码的订单行进行分组。
在我的 xslt 文件中,我将密钥定义如下:
在创建 xml 文件的第一部分后,我执行以下操作:
我希望 xml 文件将从当前<shipment
> 节点解析,并且构建的密钥将仅使用<order-line
> 节点进行该特定装运。但相反,我在文件中得到了三个<shipment
> 包含所有<order-line
> 节点的节点。因此,似乎在创建密钥时总是从根目录解析 xml 文件?是这样吗?有没有解决的办法?
xslt - XSLT 1.0:使用键对唯一值进行排序,但有例外
我有以下简化的 XML 结构:
我需要根据“Qualifierstring”和“revenueCenter”对记录集(R)进行分组。我想出了这个完美运行的 XSLT:
我定义一个键并选择唯一的项目,构建组并处理记录集 (R)。
但是现在我如何定义密钥以便将“revenueCenter”9992 和 9993 组合在一起?我必须设置2个不同的键吗?(但我怎么能在我的模板中使用 2 个键)或者我可以用值扩展现有的键吗?
XML 应如下所示:
2012 年 5 月 24 日更新: 我实际上想出了一个 XSLT,它可以满足我的需求,我使用了两个不同的键:
应用到源 XML 我得到这个正确的输出:
该解决方案有效,因为我知道我需要分别排除和分组哪些值。
xml - 使用 Muenchian 方法对多个键进行 XSLT 分组
这是输入文件。
所有这些块都包裹在一个<allocfile>
没有出现的标签中,不知道为什么?所有这些块都包裹在顶级元素<xml>
中。
输出是
输入文件需要在多个key的基础上进行排序和分组。我继续使用该concat
函数和 Muenchian 方法,但并没有从网上获得太多帮助。我正在使用 XSLT 1.0。
分组规则
文件中的所有节点都将具有
<hd1>
值,1234..
这将成为键的第一组,并在输出中显示为<Header1>
- 分组的第二个关键是节点代码。具有相同值的节点被组合在一起。显示为。代码头
第二个键是节点组
G_H
,FUN
,oH
,y
。如果所有这些都具有相同的节点值,则它们将组合在一起。它在输出中显示为<Header2>
<alc>
在节点,<No>
,<DT>
,上不会发生分组<AMOUNT>
。它们在每个组中都有不同的值。
xml - 希望通过 xslt 和 Muenchian 方法将表格 xml 数据转换为类似矩阵的热图
我一直在阅读 Muenchian 方法,但我只是不了解如何生成我需要的 html 格式的分组。
这是源xml。
这就是我想要达到的目标。
我还没有真正接近获得我需要的输出。我确实从http://www.jenitennison.com/xslt/grouping/muenchian.html得到了这个例子,但没有比这更进一步。
我可以控制 col 部分中输出的数据,但我无法更改整体树。任何帮助将不胜感激。
xml - 名称目录的 XSLT 分组
我正在尝试为我正在使用 XSLT 处理的项目构建姓氏目录。这就是我最终想要的样子。我希望 XSLT 通过显示人员姓氏的第一个字母的位置来获取部分搜索的索引分组,并且我希望它根据人员姓氏的第一个字母按结果中的每个部分进行分组.
请参阅下面的示例。
搜索方式:ACFGJ
一个
安德森·
安德鲁斯
·艾莉森
C
查尔斯
F
弗雷德里克斯·
弗兰克斯
G
加勒特
Ĵ
约翰逊
詹姆斯
我已经尝试了该部分的 Muenchian 分组,以使该人的姓氏的第一个首字母位于适当的字母下(即 Section A Anderson、Andrews、Allison ....J Johnson James)并且效果很好。
使用相同的代码,我尝试将其应用于生成按 ACFGJ 搜索的部分,我想根据 XML 中的数据显示该人姓氏的第一个字母。尝试代码时,我没有得到本节的任何结果。
有人可以帮忙吗?谢谢
干杯
更新
OP希望转换此输入文档...
... 使用 XSLT 进入上面显示的文本格式输出文档。目前尚不清楚 OP 使用的是 XSLT 1.0 还是 2.0。搜索字母作为样式表参数提供给样式表,格式为以空格分隔的大写字母列表,声明如下...
您可以假设这些字母已经按字母顺序排序并且仅限于大写。
xml - 在 muenchian 分组中,当我可以直接使用密钥时,为什么要选择 generate-id?
我的输入 xml 文件如下:
在 XSLT 1.0 中,我想选择其元素值之前的所有 Property 元素。是相同的,并在 之前取得相同的值。作为一个记录。
示例(使用示例子输入文件) 1) input.xml
示例子 output.xml
2) 输入.xml
示例子 output.xml
我在stackoverflow本身中问过类似的问题,但我对类似的陈述感到困惑
其中关键是:
[这里还有一个问题:键的匹配值应该作为 Property 或 root/Property 给出。我认为 key 根据上下文选择 Property 元素。(这里的上下文是 /root/Property,因为它是语句中给出的 XPATH 表达式<xsl:apply-templates select="/root/Property)
Is that true please clear this.]
我真正关心的是
而不是使用这个:
我可以使用这个:
关键在哪里
实际区别是什么(在执行和流程方面)?
xslt - 子字符串上的 XSL Muenchian 方法
我正在尝试将一些 XML 输出转换为评级表(与水文相关),该表由顶部的百分之一值和下降的十分之一值组成。我遇到的问题是我似乎无法通过在 ht 属性上使用子字符串来对唯一值进行排序。
以下是 XML 输出的示例:
输出应如下所示:
我能够在正确的列中获取 cap 属性,但无法使 GH 列(删除百分之一值的 ht 属性)每行仅显示一次。我得到这样的东西:
这是我格式化此部分的 xsl 部分。xsl:choose 似乎适用于列。我已经尝试过 Muenchian 方法,但不能完全正确(很难让它与子字符串键一起工作)。
这是最好的方法,还是有另一种方法让每一行对给定的子字符串只显示一次(19.7 一次,19.76、19.77、19.78、19.79 值)? 评分通常像示例一样从非零值开始,所以我不能只使用百分之一的 0 值来开始一个组,而使用 9 来结束一个组。
谢谢,马特