问题标签 [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.
xml - Muenchian Grouping - 在一个节点内分组,而不是在整个文档内
我试图在我的 XSLT 中使用 Muenchian 分组来对匹配节点进行分组,但我只想在父节点内进行分组,而不是在整个源 XML 文档中进行分组。
给定 XSLT 和 XML 如下(对我的示例代码的长度表示歉意):
XSLT
XML
结果
我如何在每个中分组<records>
并实现此结果:
xslt - XSLT - 按索引访问键 - 例如,在 Muenchian 分组中
在我的教科书(Patrick Carey 的 XML 第 2 版)中,它提供了一个使用“Muenchian Grouping”来查找唯一选择的示例。我不明白的部分是:
它到了这里,在示例的进程中它指出:“ property[generate-id()=generate-id(key("cityNames", "Cutler" )[1])] ”它说这会找到由于索引“[1]”,选择中的第一个“Cutler”。鉴于上面的 XML 将返回“Cutler”
现在示例进展为:“ property[generate-id()=generate-id(key("cityNames", city )[1])] ”这表示这将找到第一个也是唯一一个(因此是唯一的)键内的每个城市。创造了所有城市内部的一组独特价值。鉴于上面的 XML 将返回“Argyle Broxton Cutler Fenmore Padua Stratmore Oseola” (注意没有倍数)。
现在,我的问题是:为什么第二个语句返回一系列值,而不仅仅是一个?
谢谢
xslt - XSLT 分组和子分组
我有以下代码:
我的 XML:
它输出以下内容:
我希望输出先按类别分组,然后按每个类别的客户分组,对此的任何见解都会很棒:
基本上按类别分组后,我只想在该类别下看到一个客户,该客户在该类别中的每个促销活动。
xml - 使用 XSLT 进行总和和类别分组
使用 XSLT,如何更改以下内容:
进入:
没有明确编码每个州的名称,因为如果波多黎各成为一个州,我会被搞砸的。
xslt - XSLT:显示过滤的 XML 记录集的唯一行
我有一个记录集,我正在对特定字段进行过滤(即 Manager ="Frannklin")。现在我想根据另一个字段(客户端)对过滤后的记录集的结果进行分组。我似乎无法让 Muenchian 分组正常工作。
有什么想法吗?
蒂亚!
CG
我的过滤器如下所示:
<xsl:key name="k1" match="Row" use="@Manager"/>
<xsl:param name="dvt_filterval">Frannklin</xsl:param>
<xsl:variable name="Rows" select="/dsQueryResponse/Rows/Row" />
<xsl:variable name="FilteredRowsAttr" select="$Rows[normalize-space(@*[name()=$FieldNameNoAtSign])=$dvt_filterval ]" />
模板
<xsl:apply-templates select="$FilteredRowsAttr[generate-id() = generate-id(key('k1',@Manager))]" mode="g1000a">
</xsl:apply-templates>
<xsl:template match="Row" mode="g1000a">
客户:<xsl:value-of select="@Client"/>
</xsl:template>
结果我得到
客户端:Beta
客户端:Beta
客户端:Beta
客户端:Gamma
客户端:Delta
我想要的结果
客户:Beta
客户:Gamma
客户:Delta
样本记录集
<dsQueryResponse>
<Rows>
<Row Manager="Smith" Client="Alpha " Project_x0020_Name="Annapolis" PM_x0023_="00123" />
<Row Manager="Ford" Client="Alpha " Project_x0020_Name="Brown" PM_x0023_="00124" />
<Row Manager="Cronkite" Client="Beta " Project_x0020_Name="Gannon" PM_x0023_="00129" />
<Row Manager="Clinton, Bill" Client="Beta " Project_x0020_Name="Harvard" PM_x0023_="00130" />
<Row Manager="Frannklin" Client="Beta " Project_x0020_Name="Irving" PM_x0023_="00131" />
<Row Manager="Frannklin" Client="Beta " Project_x0020_Name="Jakarta" PM_x0023_="00132" />
<Row Manager="Frannklin" Client="Beta " Project_x0020_Name="Vassar" PM_x0023_="00135" />
<Row Manager="Jefferson" Client="Gamma " Project_x0020_Name="Stamford" PM_x0023_="00141" />
<Row Manager="Cronkite" Client="Gamma " Project_x0020_Name="Tufts" PM_x0023_="00142" />
<Row Manager="Frannklin" Client="Gamma " Project_x0020_Name="UCLA" PM_x0023_="00143" />
<Row Manager="Jefferson" Client="Gamma " Project_x0020_Name="Villanova" PM_x0023_="00144" />
<Row Manager="Carter" Client="Delta " Project_x0020_Name="Drexel" PM_x0023_="00150" />
<Row Manager="Clinton" Client="Delta " Project_x0020_Name="Iona" PM_x0023_="00151" />
<Row Manager="Frannklin" Client="Delta " Project_x0020_Name="Temple" PM_x0023_="00152" />
<Row Manager="Ford" Client="Epsilon " Project_x0020_Name="UNC" PM_x0023_="00157" />
<Row Manager="Clinton" Client="Epsilon " Project_x0020_Name="Berkley" PM_x0023_="00158" />
</Rows>
</dsQueryResponse>
xslt - XSLT 1.0 分组以将日期定义的元素重新格式化为任务定义的元素
我有一个棘手的 XSLT 转换,希望得到您的建议 我的 xml 格式如下:
输出 xml 应该是:
本质上,作为输入,“Person”对象收集特定日期的所有任务/工作时间。作为输出,我希望“Person”对象收集特定任务的日期/工作时间。
我需要使用 XLST 1.0。我一直在尝试使用带键的分组,但非常困惑。
感谢你的帮助。丹尼尔
xslt - 使用 XSLT 枚举同名节点
我有很多很多 XML 文件,这些文件通常包含多次节点(每次都有不同的数据)。例子:
所需的输出将是:
问题是,我没有所有重复节点名的列表,所以我需要 XSLT 运行所有节点,并且只对存在多次的节点进行编号。那可能吗?
有没有人知道如何做到这一点?
谢谢!
xslt - XSLT 1.0:分组和删除重复项
我有一个 xml 分组挑战,我需要对其进行分组并删除重复项,如下所示:
请注意,对于 name/taskID/date 的特定出现,仅选取第一个。在这个例子中,
会被放在一边。
以下是预期的输出:
我尝试使用以下键在 XSLT 1.0 中使用 muenchian 分组:
但那我怎么才能拿起第一次出现的
? 看来我需要两级钥匙!?
xslt - XSLT 拆分输出文件 - muenchian 分组
我有一个 XSLT 文件来转换大量数据。我想添加一个“拆分”功能,作为链接的 XSLT 或在当前 XSLT 中可以创建多个输出文件,以便将文件的大小限制在某个阈值以下。假设输入 XML 如下:
XSLT 文件如下使用 muenchian 分组。
但是,作为输出,我想要如下几个文件而不是一个大文件。对于这个例子,我为每个文件只设置了一个名称..但这应该是一个参数。
第一人称的输出文件:
第二人称的输出文件:
使用 XSLT 1.0 的首选和最优雅的方法是什么?有没有办法在 XSLT 中调用链式 XSLT 以拆分输出文件?
干杯。
xslt - XSLT:基于分组输出到多个 xml 文件
假设,您有下面的 xml。目标是按 FirstName 分组并将 Person 导出到不同的 xml 文件中。每个输出 xml 文件最多只能包含 X个不同的FirstName。
下面是 X = 3 时所需转换的示例
XML 输入:
XML 输出 1 具有 3 个不同的 FirstName
XML 输出 2 和 2 剩余的 FirstName
在我看来,muenchian 分组可以与 一起使用来生成多个输出文件。但是,核心问题是在导出到新文件之前,我们可以在哪里设置人数阈值?