问题标签 [xslt-3.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 - 隐式与未命名的包
关于XSLT 3.0 中的包,隐式包和未命名包是一回事吗?假设任何一个都不能被其他包使用,为什么它会说:
出于兼容性原因,包中声明的所有命名模板和模式都是公开的。
xslt - 覆盖组件的可见性
在Binding References to Components中有一个我觉得令人困惑的例子:
然后它说:
根据 3.5.3.2 接受组件中的规则更改可见性:特别是,可见性=“私有”更改为可见性=“隐藏”。
为什么需要指定private
将可见性更改为hidden
?我希望,由于您正在覆盖组件,因此原始覆盖的组件会自动隐藏,并且 using 和 used 包中的所有符号引用都引用新的覆盖组件。
组件 Cp 是最重要的组件。它的属性就像它被声明为 P 中的顶级组件一样(在 xsl:use-package 元素之外)......
这意味着C
任何使用包都可以看到它,但它被标记为private
.
xslt - 范围内没有命名空间的 XPath 3.0 序列化
在回答这个问题时,我突然想到我知道如何使用 XSLT 3.0 (XPath 3.0)serialize()
函数,但我不知道如何避免对范围内的命名空间进行序列化。这是一个最小的例子:
XML 输入
XSLT 3.0 样式表
实际输出
序列化过程包括在元素范围内的命名空间声明cichlid
,尽管它没有用于此元素。我想删除这个声明并使输出看起来像
预期产出
我知道如何修改cichlid
元素,删除范围内的命名空间,并序列化这个修改后的元素。但这似乎是一个相当麻烦的解决方案。我的问题是:
使用该函数序列化 XML 元素serialize()
而不序列化范围内未使用的命名空间声明的规范方法是什么?
在 Oxygen 中使用 Saxon-EE 9.6.0.7 进行测试。
xml - 使用 XSLT 删除 XML 中的空子元素
我的输入 XML 如下,
我的输出 XML 应该是这样的,
我只想删除具有空值的子元素。在上面的示例中,我只想删除<AT-ID-T>
具有空值的元素。
但不应删除 Table-ID-T 或 ID-G。
这里的一个挑战是,假设如果所有子元素都有空值,那么至少一个子元素应该保留在 Table 或数组中。
例如,输入 XML 是
那么输出应该是这样的,
请为我提供一个符合要求的合适 XSLT。
请在我尝试过的 XSLT 下面找到,
在应用上述 XSLT 时,删除了所有具有空值的元素。但我只需要删除子元素。
xml - XSLT expand-text="yes" 在输出中导致额外的空格
在 XSLT 样式表中设置 expand-text="yes" 似乎会导致在输出 XML 中发出额外的空格。例如,这个样式表:
产生输出AB
。但是,如果我将其更改为expand-text="yes"
then 它会产生A B
.
任何人都可以帮助解释这种行为吗?是设计使然吗?我正在使用 Saxon-PE 9.6.0.7。
谢谢,乔希。
xml - xslt 2.0 是如何具有键值属性的变量与 xslt 3.0 映射不同?哪一个会执行得更快?
**在 XSLT 2.0 中 ** 我是这样使用它的:
声明一个变量
用它来获得这样的价值
现在说如果我使用 xslt 3.0,相对于 xslt 2.0 需要进行多少更改,如果我使用来自 xslt 2.0 的 map,它是否比我现在使用的更有效?
xml - XSLT 将此 xml 转换为表格格式
这是我拥有的一个 xml 文件的小样本
我需要将其转换为以下类似表格的结构
目前,我正在使用如下所示的 XSLT 样式表,它为我提供了不同的格式。你能帮我修复这个样式表以获得上述格式吗?
regex - xslt 是否用于在小写后跟大写字母后添加空格
我有一些简单的字符串:
前任:
DeFacto、RightOfWay、HalfYearly 等
如何使用 xslt 2.0 或 xslt 3.0 中的函数在小写和大写之间插入空格。
期望输出:
事实上,通行权,半年一次
xml - 如何在模板匹配表达式中使用包含模式的 XSLT 变量
我想要做
我在 XSLT 2.0 版和 3.0 版中尝试过,但无济于事。有什么提示吗?
原因:模式有点复杂,我想在几个地方使用它,而不仅仅是这个匹配。
编辑:
我现在通过接受变量不包含字符串/模式,但结果节点的事实解决了我的问题。如果我将其修改为
它工作正常。
我仍然想知道为什么不能简单地将字符串存储在变量中并在允许文字字符串的任何地方使用它。