问题标签 [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 投票
2 回答
199 浏览

xslt - 我需要定义一个 xslt 来将几个元素与自定义 xsd 类型的分隔符组合起来

我有几个自定义类型,它们有 2、3 或 4 个孩子。因此,无论我得到这些孩子,我都需要将它们组合成一个元素,该元素是输出 XML 中的父标记本身。由于缺乏 xslt 的经验,我尝试过但无法做到。任何人都可以帮助。

我的输入 XML。

我的输出 XML 应该是这样的:

如果您在此处观察详细信息,状态,批量等是我的自定义类型,它们具有子节点 NUMBER、Description、NUMBER01、NUMBRER02。我需要将它们与分隔符“;”结合起来 如果它们为空或为空,我将拥有“;;;” 在我的目标列中,如报告字段中所示。

此外,我还有一些雇主类型的字段,例如带有孩子 ID、FNAME 和 LNAME 的雇主,我应该将它们组合为 ID:FNAME、LNAME,如雇主字段所示。

我想如果我知道处理一种自定义类型,我可以轻松处理其他类型。

你能帮忙吗?我已经花了一整天的时间,我需要尽快做这件事。

0 投票
1 回答
655 浏览

xslt - func:function 返回结果树片段

我正在使用 Xalan-j 2.7.1。我使用 xalans 实现 exslt func:function extensions 编写了一个函数。我试图通过将输出 xml 的可重复部分用于函数来使我的 xslt 更清洁。以下函数代表了我正在尝试做的事情。

预期的输出是一个 xml 树片段,但我没有看到任何输出。我不知道为什么这不起作用,尽管它在 exslt.org 文档中提到

xslt

0 投票
1 回答
175 浏览

xml - EXSLT 自定义函数导致样式表返回“嵌套应用模板调用过多”错误

func:function我试图通过使用 EXSLT 的元素来实现一个“三元运算符”扩展函数,以便在我的样式表中使用。出于兼容性原因,我必须使用 XSLT 1.0。我想出了这个:

无论我在哪里使用它都可以正常工作。但是,我也尝试实现一个 substring-after-last 函数(从这里开始)。此代码工作正常:

这样它也可以工作:

…但是当我尝试使用“三元”函数的实现时,它不起作用;

这不起作用:

此方法导致我的样式表向我抛出此错误

我试图通过使用 -Xss16m 开关来增加 Java 的堆栈大小,但这只会导致 Saxon 抛出 OutOfMemoryError(Java 堆空间)。我发送给这个函数的数据集相当小,所以我不明白溢出发生在哪里以及为什么我甚至有必要尝试增加堆栈大小。

我究竟做错了什么?

0 投票
1 回答
495 浏览

xml - IE 和 Chrome 中的 XSLT 函数 exslt:object-type

EXSLT 为 XSLT 提供了一组有用的扩展。可能我们大多数人都使用过 exslt:node-set 函数。EXSLT 指定的另一个函数之一是“exslt:object-type”。不幸的是,大多数浏览器(Firefox 除外)似乎不支持此功能。参考: http: //greenbytes.de/tech/tc/xslt/ 虽然我设法在 IE 中使用脚本实现了这个功能,但我似乎没有找到适用于 Google Chrome 的解决方法。(这是 IE 似乎优于 Chrome 的时代之一)。

我的应用程序的主要目标是找出参数是否是“节点集”。或者更准确地说 - 如果可以在 xsl:apply-templates 中选择参数。

IE 实现可能与以下类似:

所以问题是 - 如何在谷歌浏览器中做类似的事情。

请理解,解决方案不是手动重写源样式表,因为这应该是完全自动化的过程。

我的场景如下:代理提交 XML + XSLT,该过程自动重写 XSLT 以将 xsl:value-of 转换为 xsl:apply-templates。虽然 xsl:value-of 的 select 属性的类型无关紧要,但当 select 属性无法解析为节点集时,xsl:apply-templates 将失败。

0 投票
2 回答
210 浏览

xml - EXSLT 节点集剥离属性?

我以前注意到这一点,但不记得我是如何绕过它的。在节点设置 XML 字符串时,EXSLT 似乎正在剥离属性。

这是一个人为的示例(为简洁起见,我删除了 XSLT 样式表标记,但 EXSLT 的公共库正在加载到命名空间中exsl)。

XML

XSLT:

结果

Demo Playground(见输出

0 投票
1 回答
238 浏览

xslt - EXSLT 函数(在 lxml 中)不返回结果

我正在尝试编写一个 EXSLT 函数,但由于某种原因它似乎没有返回结果。该函数应该在另一个文档中查找一个节点:

xsl:message可以看到它确实收到了一个有效$id的并且key()返回了一个节点;但是当我从另一个模板调用它时,它似乎没有产生任何结果。

环境:libxml2/ libxslt,不知道如何查看版本;我从lxmlv3.2.3 开始使用它们。

0 投票
1 回答
838 浏览

xml - 使用 EXSLT 找不到文件

我正在尝试开始使用 EXSLT。

这是我的基本 XSL。

我已经从 EXSLT 网站下载了通用模块。( http://www.exslt.org/exsl/index.html )

这个模块的结构是:

我将其解压缩并将其放在与我的基本 XSL 相同的目录中,以便 exsl.xsl 和我的基本 xsl 在同一个文件夹中。

exsl.xsl 说

现在这本身似乎是错误的,因为它没有首先指向函数文件夹。但是,即使我添加功能:

我在 XMLSpy 上收到“找不到本地文件”错误。

知道我是如何开始的吗?

0 投票
1 回答
950 浏览

xml - EXSLT - 数学:随机不起作用

我想使用 EXSLT 的函数 math:random() 但我不能让它工作。这是我的测试,文件 xslt:

这是简单的文件 xml:

这个例子不应该打印我“ciao!” 和一个从 1 到 10 的随机数?非常感谢您的帮助。

0 投票
1 回答
2504 浏览

date - EXSLT date:add 函数出现意外结果

我想使用 exslt 日期获取明天的日期。

date:date()返回今天的日期('2014-01-23'),如果我添加 1 天('P1D'),我希望它是明天('2014-01-24')。但相反的结果

是'2014-01-23T23:00:00Z'。

0 投票
0 回答
1418 浏览

xml - 找不到名为 {http://exslt.org/dates-and-times}date-time() 的匹配 0 参数 EXSLT 函数

我正在使用 IntelliJ IDEA 13。XSLT 处理器是 SAXON。我需要在转换中转换日期和时间。我决定使用 EXSLT。这是我在转换中添加的内容:

“exslt”目录与当前转换文件位于同一级别。这是我尝试调用 EXSLT 函数的方式:

这是编译错误:

找不到名为 { http://exslt.org/dates-and-times }date-time() 的匹配 0 参数函数。没有本地名称 date-time 的 Saxon 扩展函数

你能告诉我我做错了什么吗?我读过 SAXON 通常原生支持日期和时间扩展,但我选择 EXSLT 是为了能够在任何 XSLT 处理器上运行转换。