问题标签 [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.
xslt - EXSLT 语法问题
毫无疑问,这将是显而易见的,但以下代码在标记的行上有 2 个错误:
错误是:
- 标记缺少右括号'>'
- 缺少结束标记“日期:月份中的某天”
据我所知,这两种情况都不是。有什么想法,还是我只是瞎了眼?
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 很难更改,因此建议进行此类更改的解决方案并不理想。
在此先感谢,
特里斯坦伊斯特本
xslt - XSLT:根据非一月开始计算年份
我正在尝试根据从 4 月 6 日开始的一年来计算一年。
使用 EXSLT,我可以根据正常的 1 月开始计算年份:
除了从 4 月 6 日开始的一年,我怎么能这样做。
谢谢。
xml - 如何使用 Exslt 解决 XML 到 XML 的问题 - set:distinct
这从XML 扩展到使用 XSL 的 XML 问题 我设法导入 exslt 并根据给出的解决方案(感谢 Kyle Butt)修改了我的代码,如下所示:
但是输出中有错误说 - '函数集:distinct()失败。值不能为空。如何解决这个问题?
顺便说一句 XML 输入:
& 所需的 XML 输出:
xml - exslt.org 扩展
我正在尝试在我的一个转换中使用 exslt 扩展。我从这个网站上得到了一个关于如何将 xml 文件连接成一个的例子。
我已经正确实现了命名空间和元素前缀,但是每次我尝试从命令行运行它时,我都会收到以下错误...
在变量 step-concat 中找不到名为 { http://exslt.org/common }node-set() 的匹配 1-argument 函数(文件名和行号在这里等等等等)
我不知道出了什么问题,因为我对这些东西很陌生。我的 xsl 文件是
我究竟做错了什么?我尝试从 exslt.org 下载模块,但对我来说根本没有任何意义......
xml - 连接 XML
我有三个xml文件
每个文件都有相同的产品(按./name),但有不同的子产品(按./name),我需要将它们连接成一棵树,每个产品/名称一个产品,包含相同规则的所有子产品,以便我可以输出一种结构。
我找到了一个 xslt 方法,它将创建一个节点集,如下所示
但是,当我创建其他模板时,将按产品/名称创建三个产品,即塞浦路斯将出现三次。
有谁知道我要怎么做??我的结果需要如下
c# - 在 c# (XslCompiledTransform) 中实现 exslt.dynamic.evaluate
我有一个使用 exslt:dynamic 模块的样式表,更准确地说,它只使用评估函数。我知道 .NET 2.0 中的 XslCompiledTransform 没有实现这个模块(就像 Mvp.Xml 中的 ExslTransform 一样)。
知道如何解决这个问题吗?
xslt - 排序的 exsl:node-set。按其位置返回节点
我有一组节点
我现在已经这样排序了
现在我需要将排序数组中的任意元素获取到它的位置数。我正在使用代码:
我得到一个响应错误。我应该怎么做?
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日
xslt - xsl:variable 包含节点集。如何输出变量的第n个节点?
我正在转换一个 XML 文档。有一个属性@prettydate
是类似于“Friday, May 7, 2010”的字符串。我想拆分该字符串并添加指向月份和年份的链接。我正在使用该exslt:strings
模块,并且可以添加任何其他必要的 EXSLT 模块。
到目前为止,这是我的代码:
我已经通过运行 $prettyparts 验证了<xml:for-each/>
我得到了预期的节点集:
但无论我尝试以哪种方式<token>
直接引用特定对象(而不是在 foreach 中),我都没有得到与无效类型有关的任何错误或各种错误。这是我尝试过的一些语法:
知道表达式应该是什么吗?
ETA:感谢@DevNull 的建议,正确的表达方式是:
而且,我必须以这种方式设置变量: