问题标签 [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.
json - 使用 xslt 3.0 解析 json 时 prolog 错误中不允许内容
我正在尝试做一个 POC 将 json 转换为 xml 格式。现在我通过 java 使用 Saxon-HE 版本 9.8.0-5
让我们假设一个简单的 json 为:
现在java代码如下:
但我得到以下错误:
sample_test1.json 的第 1 行第 1 列出错:SXXP0003:XML 解析器报告的错误:prolog 中不允许内容。
当我尝试将 json 内容放在任何 xml 元素中并对其进行处理时,它是成功的。为什么??我们不能直接处理 json 而不将其内容放入任何 xml 结构中吗?
xslt-3.0 - xslt:删除特定元素前后的空格
我正在使用 Saxon PE 9.7,XSLT
版本 3.0。
我尝试在<w>
before之后删除空间<damage>
。我尝试了几种解决方案:normalize-space()
, translate(., ' ', '')
, even css
, white-space: nowrap
... 我还查看了如何使用 xslt 删除所有属性值中的空格?. 不幸的是,没有一个工作。
TEI
当我damage/supplied/w
在第二个之前<w>
,它可以工作,但不是在第一个之后<w>
XSLT
在此先感谢您的友好建议。
xslt-3.0 - 搜索并替换一个元素,使用xslt 3,替换词组是一样的
虽然我有一个 xml 文件作为输入,例如:
我试图找到在文件中或在 xsl 本身中包含以下信息的最佳方法:
所以如果我制作了一个逗号分隔的输入文件,它看起来像:
我已经尝试过使用 xslt 2,但我不断收到错误,例如不允许多个项目的序列,因为变量 $search_phrase 的值...
期望的输出:
有人可以给我一个 xslt-3.0 的例子,我可能可以替换上述短语,并添加所需的元素,只要有匹配项?
我需要做什么:
在完整的 xml 文件中,有许多记录可以具有相同的描述。我还需要对描述进行完全匹配:不应匹配短语“深入了解使用 XML 创建应用程序,作者...”。在我的例子中,我也有一个描述,其中的区别只是这种情况,例如“深入了解使用 XML 创建应用程序”。不应该也匹配。因为在我的代码中我使用小写,这也可能是问题,但不确定......每当有匹配项时,必须将沿着搜索词指定的位置添加到 location 元素中,该元素目前不存在于任何记录在xml中。
xml - Saxon-JS 处理包含元素的 CDATA 是否存在已知错误
我想知道 Saxon-JS 处理包含 CDATA 元素的方式是否存在已知错误。
我有一个有效的 XSLT 3.0 和 XML 流程,其中包括从包含 CDATA 的元素中获取文本并在转换中应用 HTML 标记。我会尝试在不发布脚本的情况下提出问题。
我正在使用 Saxon-HE 9.8.0.3 并尝试使用最新的 Saxon-JS。从.xsl
文件转换为文件的所有内容都.sef
有效,除了从包含 CDATA 的元素中获取的文本的预期格式。
我有一个<docText>
只包含<![CDATA[ ... ]]>
封闭的多行文本的元素。
我用类似这样的方式调用模板:
<xsl:apply-templates select="ancestor::document/docText"/>
我匹配<xsl:template match="docText/text()">
包含在变量中的文本的最终操作<docText>
输出如下:
<xsl:value-of select="$step9-2" disable-output-escaping="yes" />
同样,当我从 Java 的命令行使用 Saxon-HE、XML 和 XSLT 3.0 的原始转换时,输出对于工作 HTML 标记是正确的。与 Saxon-JS 一起使用的转换脚本几乎相同,除了最初在 CDATA 部分中的文本格式外,所有逻辑都有效。文本已输出,但未格式化。
错误是否有任何原因可能是由于 Saxon-JS 处理或不处理 Saxon-HE 处理 CDATA 部分的方式?
迈克尔
json - xslt 3.0 json-to-xml 和 xml-to-json 转换
目前我需要使用 XSLT 3.0 和 Saxon-HE 将 json 转换为 xml 和 xml 到 json,反之亦然。
下面是我的 json abc.xml 文件
下面是 xsl 文件 xyz.xsl
下面是输出xml
现在我的问题是如何从 output.xml 中取回相同的 json?我正在使用 xslt 函数 xml-to-json() 尝试此操作,但输出格式看起来不正确。下面是得到的 xsl 和输出 m。
123.xsl
输出 JSON
在这里试试这个例子https://xsltfiddle.liberty-development.net/3NzcBsQ
在 xsl 中,我选择了错误的名为 data 的模板。因为数据模板不在 output.xml 中。我不确定我应该在这里写什么。
xslt-3.0 - XSLT 3 中的条件流式累加器
使用这样的输入 XML:
我想使用单独的借方和贷方累加器创建一个可流式转换,但是当我尝试为一种类型或另一种类型创建一个累加器时,类似于此
我发现显然匹配、选择或序列构造函数中的任何模式的扫描都必须是静止的。我可以访问当前元素的属性值,但不能访问子元素或当前元素之前的任何内容。
我想知道我正在尝试做的事情是否甚至可以在流模式下使用累加器 - 我很确定我可以使用迭代器参数完成我的目标,但如果我这样做似乎是一个很大的限制我正确理解文档。
xml - 使用 xslt-3 将元素从 xml 文件移动到另一个 xml 元素
给定以下示例 xml 文件:
我需要按照规则将所有标题元素合并到作者元素中:如果作者元素已经存在,那么标题元素的值将插入作者记录中,使用分隔符,即 a | 特点。如果记录中没有作者元素,则标题元素将成为作者元素。期望的输出:
如何使用 xslt-3 实现上述结果?
xslt-3.0 - 使用 xslt-3 向元素添加数值
如果我有一个如下的 xml 文件:
如何使用 xslt-3 将 1000 的值添加到每个价格元素,所以有一个类似于当前值 + 1000 的总和?输出:
xslt - 获取节点的祖父母的名称
我正在尝试转换 XML 文件并尝试测试节点的祖父母是否具有特定名称,但我不知道如何获取祖父母名称。这是我正在研究的例子。我试图做的是得到父母,然后找到父母的父母,但它没有用。
谢谢。
这是 xsl 代码:
xslt - XLST 按孙子计数排序
我有一个包含关系列表的 xml 文件。样本:
item1 表示项目的 id。
我想打印出第 n 个 id 的列表,按它们在 item1 中的出现次数降序排列。所以我需要计算每个 id 在 item1 中出现的次数,然后按降序对它们进行排序。最后,我需要打印第 n 个 id。
预期答案:
我正在使用的 xlst 代码是:
代码返回什么:
它所做的只是打印第 n 个第一个 item1 而不进行任何排序,因此它不能按预期工作。我的代码如果主要基于:xslt 按子元素计数排序 ,但是那个使用直接子节点,我需要孙节点。我找到了另一个链接:XSLT 对孙子节点进行排序并选择另一个 谈论孙子的孙子的值,但我不完全理解这种排序是如何工作的。有人可以帮我理解第二个链接中使用的排序以及如何实现它吗?
我正在使用 xslt 3.0,但 2.0 或 1.0 中的任何解决方案都非常受欢迎。
谢谢你。