问题标签 [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 回答
1905 浏览

xml - 在 xslt 3.0 中使用累加器不能按我的需要工作

我有一个 XML,其中有一个书籍列表,其中包含标题、价格、作者、附加价格、艺术家、国家等属性。 XML 如下所示。

等等

我想编写一个应用于 XML 的 XSLT 3.0 以获取 HTML。我想使用累加器来获取目录中的书籍总数。虽然有更好的方法,但我只是想将累加器用于练习目的,并在包含书籍的表格末尾打印总计,其中列是标题、作者和总价。对于填写标题和作者,我使用了 for-each。总价=价格+附加价格。我想使用 iterate 来归档总价。任何人都可以帮我解决这个问题。我不完整的样式表如下所示:

我不想使用流媒体。

0 投票
1 回答
303 浏览

xml - 使用 XSLT 生成动态 xml

我们有来自 Source 的传入 JSON 数据,其中的数据和列位于相同的有效负载中。在 XSLT 中使用 json-to-xml 我能够生成如下 XML:

在这里,每一行都可以在 dataCells 标签下作为标签和值使用。dataCells 下的值代表字段的值,但标签不代表字段名称。字段名称和字段顺序是 detailColumnInfo 标记的一部分。字段/数据的顺序和数量不固定,但目标 XML 应保持固定。例如,传入数据可以有 10 个字段,并且数据可以按任何顺序排列,但是目标 XML 应该只有 2 个字段。为了实现这一点,我相信在运行时我们必须弄清楚 F1 字段的顺序,并且必须从 dataCells 中选择相应的数据。例如,如果 F1 是字段是 detailColumnInfo 中的第一个字段,那么我必须从所有数据单元(1A、2A、3A)中选择第一个值并生成具有 F1 字段值的目标 XML,依此类推。

Detailcolumninfo 标记表示列的详细信息。Detailcolumninfo 中值字段的位置将决定 Datacells 中字段的位置。对于查询中发布的输入代码片段,如果 F1 是 Detailcolumninfo 中的第一个标签,则 Datacells (1A,2A,3A) 中的第一个值表示 F1 的值。类似地,1B、2B、3B 代表 F2 的值。目标 XML 应如下所示:

任何人都可以提出可能的解决方案来实现这种动态映射。

0 投票
1 回答
1784 浏览

dynamic - xslt 3.0 xsl:评估示例

对于以下 xml 文档:

我有xsl之类的

如何在 xsl:evaluate 中使用 $test 变量以获得与以下相同的结果:

可能吗?

0 投票
1 回答
486 浏览

xml - XSLT 3.0 评估成变量

对于以下 XML:

我使用这个 XSL 将值存储在一个变量中xsl:evaluate,然后从存储在$names(“John Andrews”)中的名称节点输出值:

0 投票
2 回答
472 浏览

c# - 如何从给定的 XSLT 文件中获取版本号。

假设我有一个 XSLT 文件,如下所示:

我需要输出为 3.0,因为上面的文件有 version="3.0"。鉴于 XSLT 是字符串格式,我想使用 C# 来获得它

0 投票
2 回答
254 浏览

variables - 带有变量的 xstl 应用模板(调用模板)并在 xsl:evaluate 中使用

我有以下xml:

我正在使用这种转换:

在这里,我正在创建一个地图 $tabNames,并且希望将地图与当前节点一起传递给 employeeRows 模板。而不是“行”参数的数据值,我得到整个地图,而不是 currentNode 参数的当前节点 (pi:Payroll_Extract_Employees/pi:company),我收到与“行”参数相同的地图。第二个问题是 xsl:evaluates 将 $employee 更改为我想要遵循的值以给我相同的输出

像这样

到目前为止,我在这里引发了一个错误:

错误信息:

系统 ID:C:\Users\przemekb\AppData\Local\Temp\Untitled4.xsl 严重性:致命描述:提供给 xsl 的 XPath 表达式中的静态错误:评估:超出表达式末尾的意外令牌名称“Andrews”。表达式:{ John Andrews 23 4000 Accounting pi:Name} 开始位置:36:42 长度:1

0 投票
1 回答
293 浏览

xslt - 使用 saxon 将 JSON 动态转换为 XML

我们有来自 Source 的传入 JSON 数据,其中的数据和列位于相同的有效负载中。在 XSLT 中使用 json-to-xml 我能够生成如下 XML:

我们必须生成以下 XML 输出。


从https://stackoverflow.com/questions/47173669/dynamic-xml-generation-using-xslt# =参考后,我们能够生成数据= 但它对于空标签没有按预期工作。任何人都可以提出可能的解决方案来实现这种动态映射。

0 投票
2 回答
64 浏览

xslt-3.0 - add an element to a node, if it doesnot exist, based on matching criteria

Using XSLT 3.0,

I have as input the following XML:

given values used for matching: (i use \t to define the tab separated nature of my input file)

i need to insert to all records that do not already have a PROPERTY tag, with the value of 06

Desired result:

What i have tried, adds the element property, even if it is already there, so i end up with two elements PROPERTY, in the same node, if it already exists. Could you give me an example implementation, i use SAXON latest release (9.8)

xsl: which adds an element, even when one exists:

Have been using the solution suggested with my real data, (which differ a lot from the example), and i face the following issue:

How could i also have a report that would let me know, which of the additions while they were to be done, according to the input file, were not inserted?

0 投票
1 回答
356 浏览

json - XSLT3.0 中的 Json 到 XML

我有以下 XML。我有以下 XSLT。这个 XSLT 工作有一个 for-each 逻辑,可以根据需要在 XML 上工作。现在我希望将相同的逻辑应用于 json 文件,所以我明白我必须首先在我的 XSLT 中编写一些 jsonToXML 逻辑,并且还要有这个 for-each。我不知道该怎么做。任何人都可以帮助我..我在下面有所需的Json。这只不过是 XML 的转换。

XML 是:

适用于上述 XML 的 XSLT 如下:

如果我有以下 Json,那么 XSLT 3.0 将是什么?

0 投票
1 回答
106 浏览

xml - 防止 xi:include 处理

使用 XSL 3.0,我正在复制一个 XML 文档并查找和替换某条信息。一切正常使用这个:

但是,原始xml文件必须<xi:include/>是非常大xml的文件,并且复制过程是“打开”这些xml文件并将它们插入“完整”或“扩展”的副本中。

我想保留原件<xi:include/>,而不是处理它。

如何指示 XSLT 文件不要处理<xi:include/>,而只是复制元素和属性?

谢谢。