问题标签 [exslt]

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

xslt - EXSLT 语法问题

毫无疑问,这将是显而易见的,但以下代码在标记的行上有 2 个错误:

错误是:

  • 标记缺少右括号'>'
  • 缺少结束标记“日期:月份中的某天”

据我所知,这两种情况都不是。有什么想法,还是我只是瞎了眼?

0 投票
2 回答
1072 浏览

xslt - EXSLT func:在 xsl:for-each“循环”和 func:function 中返回问题

我的问题:
我有大量的原子 RSS 提要文件,其中有许多不同的原子条目,并且文件之间有一些重叠的条目。我需要根据来自任何一个 RSS 提要的 URL 查找并返回一个条目。

技术:
此代码通过 PHP 5.2.10 的 XLSTProcessor 扩展运行,该扩展使用 XSLT 1,支持 EXSLT 并能够运行内置的 PHP 函数。Saxan、Xalan 或其他类似的解决方案在这种特殊情况下并没有太大帮助。

下面的代码大大简化了,但代表了我的情况。

rss-feed-names.xml:

样式表.xsl

如果我们要查找的 atom 条目出现在我们查看的文件之一中,则此代码可以正常工作。它可能在该文件中出现多次,但一旦出现在两个或多个文件中,代码就会中断,因为 func:result 已经实例化并且正在被覆盖,这在 XSLT 中是禁止的。

如果有办法实际退出 EXSLT 函数或 xsl:for-each “循环”(您可以为函数分配返回变量,但函数继续;而 for-each 实际上不是循环,但更类似于函数地图),那将是理想的,但我还没有找到方法。

我曾考虑将所有提要合并到一个变量中并完全删除 for-each 循环,但从一开始就遇到了问题。

非常感谢任何其他可能的解决方案、想法或指针!这里的文件关系和 XML 很难更改,因此建议进行此类更改的解决方案并不理想。

在此先感谢,
特里斯坦伊斯特本

0 投票
1 回答
141 浏览

xslt - XSLT:根据非一月开始计算年份

我正在尝试根据从 4 月 6 日开始的一年来计算一年。

使用 EXSLT,我可以根据正常的 1 月开始计算年份:

除了从 4 月 6 日开始的一年,我怎么能这样做。

谢谢。

0 投票
1 回答
1007 浏览

xml - 如何使用 Exslt 解决 XML 到 XML 的问题 - set:distinct

这从XML 扩展到使用 XSL 的 XML 问题 我设法导入 exslt 并根据给出的解决方案(感谢 Kyle Butt)修改了我的代码,如下所示:

但是输出中有错误说 - '函数集:distinct()失败。值不能为空。如何解决这个问题?

顺便说一句 XML 输入:

& 所需的 XML 输出:

0 投票
3 回答
3121 浏览

xml - exslt.org 扩展

我正在尝试在我的一个转换中使用 exslt 扩展。我从这个网站上得到了一个关于如何将 xml 文件连接成一个的例子。

我已经正确实现了命名空间和元素前缀,但是每次我尝试从命令行运行它时,我都会收到以下错误...

在变量 step-concat 中找不到名为 { http://exslt.org/common }node-set() 的匹配 1-argument 函数(文件名和行号在这里等等等等)

我不知道出了什么问题,因为我对这些东西很陌生。我的 xsl 文件是

我究竟做错了什么?我尝试从 exslt.org 下载模块,但对我来说根本没有任何意义......

0 投票
2 回答
617 浏览

xml - 连接 XML

我有三个xml文件

每个文件都有相同的产品(按./name),但有不同的子产品(按./name),我需要将它们连接成一棵树,每个产品/名称一个产品,包含相同规则的所有子产品,以便我可以输出一种结构。

我找到了一个 xslt 方法,它将创建一个节点集,如下所示

但是,当我创建其他模板时,将按产品/名称创建三个产品,即塞浦路斯将出现三次。

有谁知道我要怎么做??我的结果需要如下

0 投票
2 回答
1307 浏览

c# - 在 c# (XslCompiledTransform) 中实现 exslt.dynamic.evaluate

我有一个使用 exslt:dynamic 模块的样式表,更准确地说,它只使用评估函数。我知道 .NET 2.0 中的 XslCompiledTransform 没有实现这个模块(就像 Mvp.Xml 中的 ExslTransform 一样)。

知道如何解决这个问题吗?

0 投票
2 回答
2171 浏览

xslt - 排序的 exsl:node-set。按其位置返回节点

我有一组节点

我现在已经这样排序了

现在我需要将排序数组中的任意元素获取到它的位置数。我正在使用代码:

我得到一个响应错误。我应该怎么做?

0 投票
2 回答
2953 浏览

xslt - EXSLT date:format-date template without document() XSLT 1.0

我正在使用date:format-date 模板 EXSLT 文件我正在使用 XSLT 1.0 和 MSXML3.0 作为处理器。

我的 date:format-date 模板 EXSLT 文件的声明是:

由于第 3 方的限制,我无法使用 document() 函数。所以我已经从 XML 片段中更改了月份和日期(类似地):

到变量:

相应地,我将最初使用 document() 函数的代码从:
[来自 EXSLT 样式表的月份处理位]

使用 MSXML3.0 节点集功能

所以我认为这会奏效。

根据 EXLT 指令“格式模式字符串被解释为 JDK 1.1 SimpleDateFormat 类的描述。 ” [我使用当前版本]。

我根据SimpleDateFormat 类将月份指定为“dd MMMMM yyyy”,这样月份将是完整月份的名称,例如一月。但它不起作用:(我查看了 EXSLT 样式表,它有这样做的逻辑。还有使用“E”模式显示一周名称的逻辑,这是行不通的对我来说。也许从使用 document() 更改为变量会破坏它。

非常感谢任何帮助。

非常感谢!

例子

正如我从SimpleDateFormat 类文档中了解到的那样,这应该导致2010 年 7 月 1 日,而我得到的是01 07 2010



这应该导致2010 年 7 月 1 日星期一,我得到的是2010 年 1 月 7

0 投票
1 回答
4475 浏览

xslt - xsl:variable 包含节点集。如何输出变量的第n个节点?

我正在转换一个 XML 文档。有一个属性@prettydate是类似于“Friday, May 7, 2010”的字符串。我想拆分该字符串并添加指向月份和年份的链接。我正在使用该exslt:strings模块,并且可以添加任何其他必要的 EXSLT 模块。

到目前为止,这是我的代码:

我已经通过运行 $prettyparts 验证了<xml:for-each/>我得到了预期的节点集:

但无论我尝试以哪种方式<token>直接引用特定对象(而不是在 foreach 中),我都没有得到与无效类型有关的任何错误或各种错误。这是我尝试过的一些语法:

知道表达式应该是什么吗?

ETA:感谢@DevNull 的建议,正确的表达方式是:

而且,我必须以这种方式设置变量: