问题标签 [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.

0 投票
1 回答
1106 浏览

json - XSLT 3.0 中的 XML 到 JSON 转换

我正在尝试使用 xml-to-json 函数将 XML 数据转换为 XSLT 3.0 中的 JSON。任何人都可以为我提供满足以下要求的 Xslt 3.0。

示例 XML 是:

我预期的 json 输出是:

}}

提前致谢

0 投票
0 回答
170 浏览

xslt-3.0 - XML 到 XML 使用 XSLT3.0

任何人都可以帮助解决这个问题,我正在尝试使用 xslt3.0 函数(xml-to-json)将我的 xml 转换为 json,它不接受我的 xml 格式,现在我正在尝试将我的 XML 转换为另一种格式的 XML使用 xslt 3.0 包含标签名称作为属性和值作为值和标签名称作为数据类型。

输入xml:

输出xml:

0 投票
1 回答
458 浏览

java - 无法将 net.sf.saxon.jaxp.TemplatesImpl 转换为可序列化

我有一个问题:我们能否序列化 net.sf.saxon.jaxp.TemplatesImpl 对象。我的问题:我无法序列化我的 net.sf.saxon.jaxp.TemplatesImpl 实例,任何人都可以帮助如何序列化我的对象。我得到了如下异常:

java.lang.ClassCastException:net.sf.saxon.jaxp.TemplatesImpl 无法转换为 java.io.Serializable

我正在使用以下依赖项:

和我用来转换的 javax.xml api。

0 投票
1 回答
279 浏览

saxon - 撒克逊找不到包裹

在 Saxon 9.8 中使用软件包时遇到了一些困难。Saxon 找不到我想使用的包并且编译失败。

-lib从命令行使用该选项时,我收到以下错误消息:

-lib在 oXygen 19 中使用带有 Saxon 9.8 附加组件的选项时,我收到以下消息:

当我使用配置文件声明包时,我在 oXygen 中收到完全相同的错误消息。

我很确定文件路径没有问题。由于在我进入 oXygen 的错误消息中似乎无法识别软件包版本,我认为这可能是语法问题,但我找不到它的来源。

这是测试我的包:

这是我的测试样式表:

提前谢谢了!

0 投票
2 回答
2129 浏览

saxon - JSON 到 XML 与 XSLT 3.0 使用撒克逊

我正在使用 XSLT 3.0 使用函数 json-to-xml 将此文档JSON转换为此文档XML

从撒克逊我传递这个 json 像文档 XML:

调用函数 json-to-xml 时,我得到一个 XML:

将此 XML 作为参数传递是否正确?

请,关于如何使用模板来转换我想要的 XML 的任何建议?我只是想要一些建议。

0 投票
2 回答
54 浏览

xml - 将元素添加到节点,如果它不存在

使用 xslt-3,

我尝试将元素 PROPERTY 插入到每个 RECORD 节点中,如果它尚不存在:

期望的结果:

我已经尝试过添加元素属性,即使它已经存在,所以如果它已经存在,我最终会在同一个节点中得到两个元素属性。你能给我一个示例实现吗,我使用 SAXON 最新版本(9.8)

编辑:下面的 xsl 添加一个元素,即使存在一个元素:

0 投票
1 回答
58 浏览

xslt-3.0 - 基于匹配此确切元素,将数据附加到元素

给定以下 XML 作为输入,

以及以下制表符分隔文件:

我使用了 \t,以显示文件中选项卡的位置。我想将在第一列中找到的数据附加到我尝试匹配的元素中,在本例中为 NUMBER。

因此,如果 NUMBER 等于第二列,则将在第一列中找到的值附加到它,使用 | 作为分隔符。

如何获得以下结果,但要保持记录的顺序,对元素输出进行排序:

我使用最新的 Saxon,v 9.8

0 投票
2 回答
2575 浏览

xml - 通过 XSLT 在其他两个元素之间添加元素?

我有以下输入 XML:

使用 XSLT 我想要以下输出:

我的 XSLT 是:

但我没有得到我想要的输出。如何使用标识模板将元素放在和ccc元素之间?bbbddd

如果有帮助,我可以使用 XSLT 3.0。

0 投票
0 回答
933 浏览

json - 替代 XSLT 在 Node.js 中转换 json

我曾经使用 XML / XSLT 将 xml 数据转换为各种格式,并使用 XSD 使结果符合某些模式。我发现它非常强大。我们现在主要处理 json 数据 - 我看到有一个支持 json 转换的 XSLT 3.0 版本。Saxon 和 QuiXSLT (java) 和 Exselt (.Net) 支持 xslt 3.0,但前 2 个是商业版本并且非常昂贵。

是否有 XSLT 的替代方案支持在 node.js 中将 json 数据转换为 json (或其他格式,如 HTML 、 CSV )?最好是免费的或不是太贵。或者也许有支持 node.js 的 xslt 3 的免费处理器

谢谢马蒂

0 投票
1 回答
2111 浏览

json - XSLT 3.0 迭代用 XML 包装的 JSON 数组

我正在使用 XSLT 处理各种 XML 文件。在一个 XML 中,我发现了一个包装好的 JSON 列表:

我的问题是我需要遍历列表。例如:

如何用 XSLT 做到这一点?我使用 XSLT 3.0 和 Saxon 引擎,版本 9.8 HE。

考虑的解决方案:

一、使用parse-json功能:

但是由于 XPathException,我无法遍历结果:“子轴的上下文项的必需项类型是节点();提供的值(。)具有项类型数组(函数(*))”或“地图不能雾化”。我发现有些功能可能我应该考虑在内,例如 map:get、map:entry,但到目前为止我还没有在我的案例中使用它们。

2. 上述变换前的附加变换:

进而:

但它不起作用 - 可能是由于添加了命名空间