问题标签 [xslt-2.0]

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 回答
9461 浏览

xslt - xsl:character-map 替换特殊字符

给定一个值为:

我需要转入<>转入<> 因为下游应用程序在整个 XML 文档中都需要这种格式。我也需要这个作为引号和撇号。我正在 XSLT 2.0 中尝试字符映射。

0 投票
2 回答
1046 浏览

xslt - XSLT 中的全局计数器或替代解决方案?

这是我的源 XML。它最初是一个 Word-ML,已简化为自己的结构。名称为“aaa”的元素可以有任何名称。问题是脚注的处理:

我必须将此 Source-XML 转换为另一个 XML。我要做的一件事是用对应的数字替换脚注。

但不能只使用 ID-Attribute。ID 只是一个内部号码。脚注应该是渐进的,并且有以下条件:

  • 条件 1:应忽略节点“comment”的子节点“脚注”。整个节点“评论”被忽略。
  • 条件 2:具有符号属性的“脚注”不计算在内(我必须显示符号而不是数字)
  • 条件3:有可能一些注释有相同的id(只有很小的百分比,但有时同一个脚注有更多的链接)。

输出应该是这样的(结构不一样,现在只对脚注的处理感兴趣):

我的第一个想法是有一个全局计数器变量,我根据条件递增。但由于 XSLT 中的变量是不可变的,因此它并不是一个真正的选择。

我还尝试计算出现在当前脚注之前的先前脚注。

是否有可能开发一个全球计数器?

还是我必须以另一种方式计算以前的脚注?虽然我真的不知道如何实现条件 3。

任何回答 cpt.oneeye 的问候和感谢

0 投票
1 回答
151 浏览

xslt - 需要编写一个 XSLT 将 XML 转换为以下格式

源 XML :---我有多个拥有相同和不同价值的所有者,并且有不同的合同号。

使用 XSLT 需要输出 XML:-

我需要一个用于上述输出的 XSLT。任何帮助将不胜感激。

0 投票
3 回答
14060 浏览

xslt - 循环不同的值

给定一个使用 distinct-values() 函数返回不同状态列表的变量,有没有办法在 for-each 循环中标记变量?

以下变量返回 AL 和 NM,但我无法使用 for-each 对其进行迭代。有没有解决的办法?

XSLT 2.0 好的。

0 投票
1 回答
1979 浏览

xslt - 将模板应用于变量/序列中的元素

当我使用“应用模板”并选择一个变量序列时,模板是作用于序列中元素的上下文,还是作用于文档中元素的上下文?

在下面的示例中,它似乎要么做要么不做,但我不明白为什么。

输出:

0 投票
1 回答
920 浏览

mutable - XSLT 2.0 如何跨各种循环和结构做计数器和变量

所以,我知道你不能访问范围之外的变量,它们是不可变的,XSLT 是功能性的而不是命令性的,等等......

但是我需要一种通用的方法来处理全局可变变量(这听起来很邪恶:)。这是一个例子......

挑战在于,在处理过程中的任何时候都可能存在任意数量的模板,例如 t1 和 t2,以及修改和使用变量的模板。

也许问题的一部分是值取决于处理顺序,但这是故意的——这就是所需要的。

我想到的一种可能性是将值作为参数传递到任何地方。但问题是一个叶子模板可能需要更改它,然后处理会重新开始......它会丢失该更改。除非模板有某种方法可以返回参数,然后我可以传递这些返回的参数?考虑一种通用的纯函数式编程语言,似乎人们可能会这样做——递归调用,但使用返回值进行进一步调用,这样人们就可以“继承”这些值。

我已经看到使用扩展来完成这项工作——调用 Java 方法或类似的东西,然后你可以拥有全局可变值,但是......我真的不想那样“作弊”。

欢迎任何指针,想法等。

0 投票
1 回答
529 浏览

xslt - 可以在“group-starting-with”子句上设置优先级吗?

这是我的输入文件的一个例子。

我想按 bbb 和 ccc 元素对节点进行分组。也有可能input-xml中只有bbb或者只有ccc。

有以下条件:

  • 条件 A:按“bbb”或“ccc”元素分组
  • 条件B:如果“ccc”紧跟在“bbb”之后,将它们放在一起

这是我想要的输出 xml:

目前我有以下 XSL。但问题是它会为每个“Foo”生成一个“组”元素。

如何将条件 B 添加到我的 XSL。甚至可以用一个 foreach 组来解决这个问题吗?我可以将条件 B 添加到“group-starting-with”并赋予它比条件 A 更高的优先级吗?我读过一些关于你可以优先考虑模式的东西......

提前谢谢 cpt.oneeye

0 投票
2 回答
43364 浏览

xslt - 为什么 XSLT 默认输出所有文本?

嗨,我已经执行了一个转换,如果它是空的,它会丢弃一个标签。

我想检查我的转换是否工作正常,所以我没有手动检查,而是编写了另一个 XSLT 代码,它只检查 OUTPUT XML 中该特定标记的存在,如果它为空,那么第二个 XSLT 应该输出一个文本“找到”。(我实际上并不需要某种 XML 类型的输出,但我只是使用 XSLT 进行搜索。)

当我尝试使用此 XSL 代码时::

它输出 XML 文件中存在的所有 TEXT DATA,

为避免这种情况,我不得不编写以下代码::

为什么以前的代码输出 TEXT,我为什么要坚持 XSL 忽略所有其他文本?是所有 XML 解析器的行为还是我自己的行为(我正在使用 msxml 解析器)。

0 投票
1 回答
989 浏览

xslt - XSLT 2.0 如何更改数字的默认格式?

在 XSLT 1.0(使用 Xalan)中,输出以下结果:

是拼写为 2011234 的数字。但在 XSLT 2.0(使用 Saxon)中,它显示为 2.011234E6。我希望它在 Saxon/2.0 案例中始终显示为 2011234。

有没有办法在输出数字时设置默认图片字符串?

我看到了十进制格式,但这只会影响图片字符串,它不会设置数字格式。从那以后,我不能到处乱扔格式号,我必须到处检查数据类型,而且……这将是一团糟。

0 投票
1 回答
1570 浏览

xslt - 在 XSLT 处理期间在处理输入->数字->输出期间保留位数

对于这个 XSLT:

对于 XML:

我得到这个输出(使用 Saxon 9.2,XSLT 2.0)

首先...我很好奇为什么当它超过小数点左侧6位时,它会突然在标准和科学记数法之间切换?这是我的问题,我想避免使用科学记数法。在提出各种其他问题之后,我发现我显然坚持将格式编号放在任何地方。

但是格式编号似乎也不起作用。尽管“s1 plain”的输出证明处理器知道有效位数(我了解转换为双精度和返回可能会丢失精度,但是在这样的转换之后有正确的数字,所以...?),似乎没有办法以标准的非科学计数法输出该值。有没有?