问题标签 [xslkey]
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 - 基于密钥的 XSL 构建节点
输入:
期望的输出:
你好。所需的输出基于以下逻辑: id_task 有多个记录 a)如果只有“ColMiss”列中的值然后构建空功能标签(输出中的第二个记录标签)b)如果它在两个“ColMiss”中都有值列和“ColHave”然后仅使用“ColHave”不为空的记录中“CapabilityCode”列中的值构建功能标记。
我希望这是有道理的,我仍然是 XSL 的键/变量部分的新手,我正在研究一些示例来理解。
谢谢
更新:
当前 XSL - 没有键/变量
如您所见,问题在于它不会将“能力”标签分组在一个父级下,但它会创建一个每记录标签,这是正常的,因为实现了逻辑。但我认为除了使用键/变量之外还有其他方法。
基于这个 XSL 有没有办法获得所需的输出?
再次感谢你。
xml - 用于分组多层结果的 xsl 转换
我希望有人可以帮助我,因为我一直在试图弄清楚如何将数据集转换为按多个级别分组的表结构。第一层是事件日期,第二层是公司名称,最后是用户。
以下是 XML。
我试图得到的结果显示在以下简单的 HTML 输出中。
我遇到的问题实际上是两个部分。首先是获得三个层次的深度。第二个是获取所有记录,而不仅仅是前几个。
这是我一直在使用的 XSL。
这是我得到的输出。
xslt - XSL 按节点值分组
我有一个 XSL 密钥分组的案例。目标是根据 ID 匹配替换值。
输入:
XSL:
我有多个具有匹配“查询”节点的“操作”节点。目标是,对于每个动作 ID,我们需要将“动作”标签中的 ID 值替换为相应的“interfaceAction_externalId”值。因此,对于动作 ID 33632,我们将复制并替换为“33633”的值(因为我们在 parameneter/name/@id 33632 = action/@id 中有匹配项)。
副本效果很好,我得到了我需要的所有信息,但似乎 action/@id 没有被替换。我以为我会使用一个键来保存 action/@id 的值,然后在模板匹配中使用它来替换 interfaceAction_externalId 中的值,但它不起作用,我不确定我在做什么错误的。
谢谢你的帮助!
sorting - xsl:sort with previous-sibling XSLT 1.0 XSL-FO muenchian xsl:key
我想访问排序列表中的前兄弟姐妹。我正在使用 Antenna House 6.2 和 XSLT 1.0。我尝试使用 msxsl 扩展,node-set()
但调用node-set()
失败。有人说在 1.0 中无法访问排序列表中的前一个兄弟姐妹,而其他人则提到了 Muenching 分组和使用xsl:key
,所以我现在正在尝试。我看过这个页面: http: //www.jenitennison.com/xslt/grouping/muenchian.html
该表已正确排序,但我无法弄清楚如何使用键检索排序列表的前同级。我需要更多的钥匙吗?我正在排序partNumberValue
,然后figureNumber
,figureNumber
可能有一个figureNumberVariant
。任何建议表示赞赏。
XML:
XSLT:
预期输出:
regex - XSLT 中的正则表达式组(last())
处理输入中的某些文本与分析字符串的链接,但无法regex-group(last())
在脚本中检索。
您可以在https://xsltfiddle.liberty-development.net/bnnZVG检查转换
如您所见,电流输出
但预期的输出是
提前致谢
xml - 使用 xsl:key() 函数进行 XPath 过滤
我正在尝试根据某些节点值比较两个 xml。
下面是两个xml:
一个.xml
b.xml
我正在尝试使用Test的内容作为键来比较 xml。
下面是我正在使用的 xsl:
根据测试节点值,xsl 的输出应该是两个 xml 中的公共节点。
但不确定为什么使用 xsl:key() 函数的那个不起作用。当我单独打印它时,它显示了正确的节点集。
xml - 基于 2 个 XML 创建 XML,并使用 XSLT2.0 在两个文件中查找值
我正在尝试基于其他 2 个 XML 生成 XML。我正在轮询一个返回人员详细信息的数据库(查询中可以返回 n 人)。最终的 XML 应该具有与来自 DB 的 XML 中不同的名称标签相同数量的Data 标签。例如:
第一个 XML- 从数据库中获取
第二个 XML- 从另一个来源获取这个
首先我需要创建 2 个数据标签,因为有 2 个不同的名称 - John 和 Allison(这部分已经完成并且运行良好)。然后我需要检查 John,无论返回的 DB 行中是否存在唯一的城市标签。让我们考虑第一个 XML,我们有与波士顿和西雅图有关的 John。因此,我将一一检查第二个 XML 中的这些城市,并且对于我匹配的每个父标记,我将创建一个新的标记详细信息并粘贴所有相关内容。
1)如果没有匹配的条目,不应该创建详细信息标签,因为没有匹配的条目。
2)城市标签将在父标签下。城市标签的值在父标签中是唯一的。我必须在第二个 XML 中一一匹配城市,并从第二个 XML 的所有父级中的所有匹配城市标记中获取值,并以父标记中匹配的任何内容进入输出XML中的相应详细信息标记的方式进行填充. PFB 示例 XML,可以更好地解释 -
最终预期的 XML-
目前我的 XSLT 导致如下所示 -
希望这很清楚,因为我不擅长解释。
xml - XSLT Key Grouping 通过考虑基于条件的多个节点
我有这个输入 XML,这是我之前的问题的延续。基本上我希望根据节点的值对<Code>
节点进行分组。映射如下:
- 代码“A1”、“A2”和“A3”需要组合在一起(假设代码组“A”)
- 代码“B1”、“B2”和“B3”需要组合在一起(比如说代码组“B”)
[这些代码是通用的,仅作为示例,实际代码不同,不是那么简单,请不要从字面上理解]
我最终将来自<Value>
这些组中的节点的值相加,但除了我之前的问题之外,我仅在<Indicator>
节点值大于或等于 2时进行求和
我目前使用这个 XSLT(学分:michael.hor257k):
产生如下输出:
但我需要这个输出的场景:
也就是说,<Value>
只有当<Indicator>
大于或等于2
有没有办法在定义键时包含这个关系运算符,还是应该将其实现为 2 个键?欣赏任何输入
提前致谢!
xml - 子节点的 XSLT 键分组
我有这个输入 XML。对于每个<Entry>
,我希望对<Details>
节点(它们是 Entry 的子节点)进行分组,并最终<Value>
通过以下代码分组来获取节点值的总和,如下所示:
- 代码 A1、A2 和 A3 应组合在一起(例如“A”)
- 代码 B1、B2 和 B3 应组合在一起(例如“B”)
[注意:代码只是示例,实际代码完全不同,因此子字符串解决方案不起作用,请不要从字面上考虑这些代码]
输出看起来像:
我目前面临的问题是该<xsl:key>
元素应该在顶部声明,而不是在 for-each 循环中的单个条目级别。因此,我无法使用匹配和使用表达式参数形成正确的键。任何帮助表示赞赏。
提前致谢!
java - 从键值对动态填充列
我正在使用 xslt 文件进行样式设置。我正在以表格格式显示一些内容。我需要从预定义的键值对中动态填充一列。请看下面的例子
问题是我收到国家名称代替城市,我想用正确的城市填充城市列,为此我需要映射国家及其城市。有没有办法在键值对中预定义国家及其城市,当收到国家名称时,它将被城市名称替换(如果不存在,它将显示国家名称)。有什么功能可以做到吗?如果你提供一个片段会很有帮助。
编辑:这是xml
我需要一个映射,这样每当国家名称为英国时,它将被替换为与其他国家相同的首都伦敦。是否有某种方法可以将 UK 定义为键,将 London 定义为值,这样每当我收到作为 UK 的键时,它将被其值替换。请帮忙。