问题标签 [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.
xml - XSLT 找到最低价格
我是 XSLT 的初学者并使用将 XML 转换为 XML。
我需要得到Prices
总和最低的标签。
源 XML:
XSLT:
输出:
预期输出:
如上所示,输出也应该具有Prices
最低值的标签作为属性。
请帮忙。
xml - 带分组的 XSLT 1.0 计算
我是 XSLT 的初学者,并使用它通过 Java 将 XML 转换为 XML。
源 XML:
XSLT:
输出 XML:
预期输出 XML:
在源 XML 中,我没有收到任何书籍及其价格,但它们不相关。
<Price>
标签表示一本书的价格。我需要计算所有书籍的总价格如下
请帮忙。
xml - XSLT 1.0 获取节点集
我是 XSLT 的初学者。我正在使用 XSLT 通过 JDK 6 将 XML 转换为 XML。
下面是我从 Web 服务收到的源 XML。
源 XML:
XSLT:
当我在源 XML 上应用上述 XSLT 时,我得到以下输出 XML。
输出XML:
预期输出:
问题在于创建变量的逻辑PrefAirlines
。
我也尝试过以下方法,但没有得到预期的输出。
是否有任何可用的函数可以让我获取节点集而不是单个值?请帮忙。
xml - XSLT 分组/合并子项(使用密钥)
我试图了解如何使用我已经编写的代码来推断解决方案。
为了简化,我将首先解释我想要做什么以及到目前为止我得到了什么。
假设我在 XSLT 中有一个 XML 变量,其中包含几个具有相同标题属性的节点。
使用@Dimitre Novatchev 解决方案,我设法将它们组合到一个节点中。
所以如果我有:
使用以下密钥后
我会得到:
现在我想稍微修改一下,我希望能够根据我的决定合并/组合标题。考虑到这一点,在上面的示例中,我想将 xxx 和 zzz 定义为同一个组,尽管它们使用不同的标题(极端情况 - 在我的工作区中,我将它们定义为相同 - 我可能有更多情况,例如这)。
如果您能告诉我一般应该采取什么方向,我将不胜感激(我想我需要修改我的密钥或使用替代方法 - generate-id 或其他方法)。
我发现自己只实施了需要大量不必要努力的糟糕解决方案。
xml - 如何按可数字段对 xslt 1.0 中的节点进行分组?
我有一个大约这种xml:
如何按具有固定语言的名称字段对费用进行分组?例如,使用 xlt 1.0 按英文版名称分组收费?我想存在 for-each-group 的 xslt 2.0 不会有问题。但在 1.0 中,我什至无法创建带有复杂指令的 xsl:key。
恩-我们
非常近似:我希望我的 xslt 渲染像这样转换它:
它按名称对费用进行分组并汇总价格。我们有一个获取翻译的复杂规则: 1. 我们定义一种默认语言 - 如果我们没有在 XML 中指定这种语言,我们为 xslt 采用默认语言(由开发人员手动设置)。2. 如果节点没有默认语言的翻译,我们在 FallbackLanguage(always en-us) 上检查翻译。3.如果我们之前没有指定翻译,我们设置一个翻译值为[NO NAME]
我的想法是将翻译逻辑封装到单独的模板中:
所以在那之后我想让变量 ChargesToDisplay 由许多对组成,看起来像
并在 ChargesToDisplay 上进行所有分组。GetLocalizedEntity 实现:
xml - 如何使用 xslt 根据每条记录中的另一个元素值获取唯一(不同)元素值
我需要根据每条记录中的另一个元素值获取一个元素值。
如果 RECORD_TYPE='ERROR' 那么我必须为 ERRORS:ERROR_DESC 下的所有记录打印所有不同(唯一)的 ERROR_DESC 值
每个错误描述都应打印在新行中。
预期输出为:
提前致谢。
xslt - xslt:通过中间参考节点选择唯一节点?
XSLT 2。
嗨,我有一个 xml,它有 3 个节点,从名为“孩子”的角度命名:孩子、父亲和母亲父亲。从父亲节点开始,我需要根据子节点中的 ID 找到一个子母亲 MothersFather 节点(子节点是连接其他两个节点的中间参考。)
因此,对于每个父亲来说,他的孩子都有不同的MothersFather - 这些不是人类,一个父亲可能有数百个孩子,但只有大约 20 个相关的 MothersFathers :)
XML 的简化版本(在现实生活中大约有 80 个父亲节点、3000 个子节点和 400 个母亲父亲节点):
我的 xslt 看起来像:
在 Try 1 中,我可以获得所有节点和 MothersFatherID。Try1 的输出是:
在我选择“不同值”的 Try2 中,我希望输出如下:
(不是真正的输出 - 只是调试显示我可以引用正确节点的东西)。
但我不知道我打算用什么来引用唯一的 MothersFatherID 以传递给“应用模板”调用。
无论我尝试过什么,我都会得到以下错误的变化:
Required item type of first operand of '/' is node(); supplied value has item type xs:anyAtomicType
或Axis step child::element('':MothersFatherID) cannot be used here: the context item is an atomic value
. 我认为他们的意思是我正在尝试选择使用字符串值的节点,反之亦然....也许我对 distinct-value() 函数的使用完全错误?
任何人都可以阐明如何做到这一点吗?(我一直希望这个 xslt 在我不会被这种事情困住时会有一些禅意的时刻)。
此外,一旦我这样做了,我将希望 MothersFather 对每个父亲进行排序 - 在真正的 xml 中,每个“ID”都有一个“名称” - 希望每个“排序”语句将是类似参考什么解决了上述问题?
谢谢你的时间。布莱斯。
编辑:
哇!!谢谢你的回答迪米特。我已经检查过了,希望你能帮我把它分解一下,因为我没有完全理解它?答案是:
我可以使用所涉及的密钥。
这条线<xsl:template match="Children|MothersFathers|text()"/>
——这条线是怎么做的?如果我通过调试器单步执行它,它就会直接跳过这条线。如果我将其注释掉,就会有很多我看不到来源的多余输出。
以及给出 MothersFather 节点的 apply-templates 行 ——我一直试图在纸上分解它以查看其神奇之处,但并没有完全理解它。这有点类似于 通过当前的父亲 ID 获取匹配的 MothersFather 节点,其中生成的 id 为“(dot dot)” - 与父节点有关吗?哪一个?等于基于 ChildByFIdAndMFId 键生成的 id - 这 1 是否只获得匹配生成的 id 的第一次出现,从而给出我的不同值?<xsl:apply-templates select= "key('kMFById', key('kMFByFId', ID)[generate-id(..) =
generate-id(key('ChildByFIdAndMFId', concat(../FathersID,'+',.))[1] ) ] )">key('kMFById', key('kMFByFId', ID)
[generate-id(..)
[1]
(Dimitre 的这个答案也与 JLRishie 的答案非常相似。他的那种似乎很有效,我在 Dimitre 那里遗漏了什么吗?)
问候,布莱斯。
xml - 使用 XSL 转换 XML,然后将输出格式化为 HTML
我需要使用 XSL 格式化 XML 输入以获得更方便的结构。作为处理的下一步,我想将其转换为 HTML。假设我有以下输入:(0)
和以下 XSL 模板:(1)
它给了我很好的 XML:(2)
我有另一个将 XML # 2转换为 html 的 XSL:
所以这是一个问题:我想一步处理带有两个模板(或合并的模板)的输入 xml。我该怎么做?
提前致谢。
sorting - XSLT 仅显示词汇表索引的唯一值?
本词汇表从每个条目的第一个字母中得出索引。我正在尝试解决如何仅显示唯一值。已经研究了前面的兄弟和 position() 但似乎找不到正确的方法。我受限于使用 XSLT 1.0 和属性。
词汇表.xml
数据.xml
词汇表.xsl
到目前为止的输出
一个 | 一个 | 乙 | c | C | c | ○ |
苹果
带种子的红色水果鳄梨
鳄梨酱中
的
醇厚水果
b
香蕉
热带黄色水果
c
哈密瓜
一种甜瓜
C
樱桃
成簇生长的红色水果
c
蔓越莓
感恩节享用的酸浆果
o
橙子
橙子柑橘类水果
期望的输出
一个 | 乙 | c | ○
一个
苹果
带种子的红色水果
鳄梨 鳄梨
酱中的一种醇厚水果
b
香蕉
A 热带黄色水果
c
哈密瓜
一种甜瓜
樱桃
一种成簇生长的红色果实
蔓越莓
感恩节享用的酸浆果
o
orange
橙色柑橘类水果
javascript - XSLT 中的 JavaScript
在 XSLT 中,我必须为特定元素分配一些值,并且它应该使用 Javascript 进行打印。例如,123 是我的输入元素数据,我希望使用 XSLT 中的 Javascript 代码以使元素显示“123 3456”的方式输出。(我使用的是 XSLT 1.0)。
如果有人能解决这个问题,那将是一个很大的帮助。