问题标签 [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.
xslt - xsl:character-map 替换特殊字符
给定一个值为:
我需要转入<
或>
转入<
或>
因为下游应用程序在整个 XML 文档中都需要这种格式。我也需要这个作为引号和撇号。我正在 XSLT 2.0 中尝试字符映射。
xslt - XSLT 中的全局计数器或替代解决方案?
这是我的源 XML。它最初是一个 Word-ML,已简化为自己的结构。名称为“aaa”的元素可以有任何名称。问题是脚注的处理:
我必须将此 Source-XML 转换为另一个 XML。我要做的一件事是用对应的数字替换脚注。
但不能只使用 ID-Attribute。ID 只是一个内部号码。脚注应该是渐进的,并且有以下条件:
- 条件 1:应忽略节点“comment”的子节点“脚注”。整个节点“评论”被忽略。
- 条件 2:具有符号属性的“脚注”不计算在内(我必须显示符号而不是数字)
- 条件3:有可能一些注释有相同的id(只有很小的百分比,但有时同一个脚注有更多的链接)。
输出应该是这样的(结构不一样,现在只对脚注的处理感兴趣):
我的第一个想法是有一个全局计数器变量,我根据条件递增。但由于 XSLT 中的变量是不可变的,因此它并不是一个真正的选择。
我还尝试计算出现在当前脚注之前的先前脚注。
是否有可能开发一个全球计数器?
还是我必须以另一种方式计算以前的脚注?虽然我真的不知道如何实现条件 3。
任何回答 cpt.oneeye 的问候和感谢
xslt - 需要编写一个 XSLT 将 XML 转换为以下格式
源 XML :---我有多个拥有相同和不同价值的所有者,并且有不同的合同号。
使用 XSLT 需要输出 XML:-
我需要一个用于上述输出的 XSLT。任何帮助将不胜感激。
xslt - 循环不同的值
给定一个使用 distinct-values() 函数返回不同状态列表的变量,有没有办法在 for-each 循环中标记变量?
以下变量返回 AL 和 NM,但我无法使用 for-each 对其进行迭代。有没有解决的办法?
XSLT 2.0 好的。
xslt - 将模板应用于变量/序列中的元素
当我使用“应用模板”并选择一个变量序列时,模板是作用于序列中元素的上下文,还是作用于文档中元素的上下文?
在下面的示例中,它似乎要么做要么不做,但我不明白为什么。
输出:
mutable - XSLT 2.0 如何跨各种循环和结构做计数器和变量
所以,我知道你不能访问范围之外的变量,它们是不可变的,XSLT 是功能性的而不是命令性的,等等......
但是我需要一种通用的方法来处理全局可变变量(这听起来很邪恶:)。这是一个例子......
挑战在于,在处理过程中的任何时候都可能存在任意数量的模板,例如 t1 和 t2,以及修改和使用变量的模板。
也许问题的一部分是值取决于处理顺序,但这是故意的——这就是所需要的。
我想到的一种可能性是将值作为参数传递到任何地方。但问题是一个叶子模板可能需要更改它,然后处理会重新开始......它会丢失该更改。除非模板有某种方法可以返回参数,然后我可以传递这些返回的参数?考虑一种通用的纯函数式编程语言,似乎人们可能会这样做——递归调用,但使用返回值进行进一步调用,这样人们就可以“继承”这些值。
我已经看到使用扩展来完成这项工作——调用 Java 方法或类似的东西,然后你可以拥有全局可变值,但是......我真的不想那样“作弊”。
欢迎任何指针,想法等。
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
xslt - 为什么 XSLT 默认输出所有文本?
嗨,我已经执行了一个转换,如果它是空的,它会丢弃一个标签。
我想检查我的转换是否工作正常,所以我没有手动检查,而是编写了另一个 XSLT 代码,它只检查 OUTPUT XML 中该特定标记的存在,如果它为空,那么第二个 XSLT 应该输出一个文本“找到”。(我实际上并不需要某种 XML 类型的输出,但我只是使用 XSLT 进行搜索。)
当我尝试使用此 XSL 代码时::
它输出 XML 文件中存在的所有 TEXT DATA,
为避免这种情况,我不得不编写以下代码::
为什么以前的代码输出 TEXT,我为什么要坚持 XSL 忽略所有其他文本?是所有 XML 解析器的行为还是我自己的行为(我正在使用 msxml 解析器)。
xslt - XSLT 2.0 如何更改数字的默认格式?
在 XSLT 1.0(使用 Xalan)中,输出以下结果:
是拼写为 2011234 的数字。但在 XSLT 2.0(使用 Saxon)中,它显示为 2.011234E6。我希望它在 Saxon/2.0 案例中始终显示为 2011234。
有没有办法在输出数字时设置默认图片字符串?
我看到了十进制格式,但这只会影响图片字符串,它不会设置数字格式。从那以后,我不能到处乱扔格式号,我必须到处检查数据类型,而且……这将是一团糟。
xslt - 在 XSLT 处理期间在处理输入->数字->输出期间保留位数
对于这个 XSLT:
对于 XML:
我得到这个输出(使用 Saxon 9.2,XSLT 2.0)
首先...我很好奇为什么当它超过小数点左侧6位时,它会突然在标准和科学记数法之间切换?这是我的问题,我想避免使用科学记数法。在提出各种其他问题之后,我发现我显然坚持将格式编号放在任何地方。
但是格式编号似乎也不起作用。尽管“s1 plain”的输出证明处理器知道有效位数(我了解转换为双精度和返回可能会丢失精度,但是在这样的转换之后有正确的数字,所以...?),似乎没有办法以标准的非科学计数法输出该值。有没有?