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

xslt - 如何识别可以使用 xsl:iterate 制作成非空元素的元素对

鉴于此 XML,我需要使用正确的 @relatedId 填充“标志端”元素,以便我可以使用 xsl:iterate 从标志中重新创建元素。我知道如何创建元素,但我不知道如何在每个标志端正确填充 @associatedId。(由于我们使用的第三方软件,这是必要的。我总是保证相同数量的开始和结束标志,并且适当数量的结束标志将遵循适当数量的开始标志。)

这是所需的 XML 输出:

0 投票
1 回答
215 浏览

xml - 从一个 xml 查找值以更新另一个 xml

我需要在一个 xml 中查找许多值,如下所示:

所以任务是识别像“specific1”和“specific2”这样的词,并找到属于这多个关键字的所有pid值。在这种情况下,我找到 x1,x2,x3,x4 但不是 x5。

然后我必须查找另一个具有许多节点的 xml:

并在您看到带有“插入的关键字”的“某些文本”之前批量更新相同的文本,然后是那里的内容。所以第一个例子,它会说“插入关键字一些文本”。本质上,我是在文本前面。

我可以做任何 xslt 版本,并且可能会使用一些工具,如 XmlSpy 或类似工具。

我确实在这里找到了一种类似的问题/答案XSLT 来查找一个 XML 中的值并替换另一个 XML 文件,但我对 xslt 的理解不足以对我的示例进行修改。

更新

我对上面的第一个 xml 有一个小的更正:实际上是:

  1. 我需要寻找不使用包含关键字的完全匹配“specific1”
  2. 然后找到catid(会有多个)
  3. 在同一个xml中,找到每个
  4. 最后查找用于查找另一个 xml 文档的 pid
0 投票
2 回答
868 浏览

java - java 1.7能否支持XSLT 3.0

我想将 json 转换为 json 并得知 XSLT 3.0 支持 json 到 json 的转换。但想检查 java 1.7 是否支持 xslt 3.0 规范。我知道可能有其他框架可以提供支持。例如,sax ( http://www.saxonica.com/html/documentation/using-xsl/xslt30.html ) 但是如果 java 可以开箱即用地支持,最好保持减少依赖关系。

0 投票
1 回答
261 浏览

xslt - XSLT 选择和转换节点(使用正则表达式匹配)和后续兄弟节点,直到下一个相似节点

稍微简化一下,我的 XML 如下所示:

我需要使用 XSLT 2.0 或 3.0 对其进行转换以获得以下内容:

Тhere 可以有两种以上的感觉,span style bold 可以出现在其他地方,所以我们需要专门识别类似tei:span[@style='bold'][matches(text(), '^\d\.')]的东西。

我很难将它放在一个样式表中,该样式表还将提取跨度文本节点的数字并将其用作新元素的属性值<sense>

我将非常感谢您的tips.x

0 投票
2 回答
452 浏览

saxon - 无法使用在撒克逊 9.7

我正在使用这个 POM 片段运行 XML Maven 插件:

样式表包含一个特性,<xsl:evaluate>它是 XSLT 3.0 的一部分,据我了解,Saxon-HE 9.7.0 支持该特性。样式表正确声明了 XSLT 版本:

但是处理这个片段:

我明白了

我错过了什么?谢谢。

0 投票
3 回答
75 浏览

xml - 报告相应架构的所有未使用元素(+属性)

在这个话题中,我想问的脑细胞比我自己能提供的要多得多。我想根据真实 XML 实例中使用/未使用的元素(仅限单个命名空间)重构我的 XSD(v1.0)。让我们建立一个小场景

我只有针对相应模式的有效 XML 文档:

XSD 验证:

在此基础上,我想创建一份报告(通过 XSLT [2.0、3.0 通过 SAXON EE 9.6.0.5 可用])关于哪些元素(标签 + 属性)不是使用但在我的 XSD 中可能使用。

简化的伪待办事项/从头开始:

  • 在我的 XSD 中搜索所有//xs:element[@name](属性跟随在报告 v2.0 中)。
  • *在我的 XML 中搜索所有内容
  • “比较”它

问题:

在可爱的 XSLT 社区中,关于这个主题是否已经超出了我的视野?

如何以良好的方式存储和比较它?

xsl:map通过 XSLT 3.0使用?存储路径 [ /body/h1, /body/p] 并比较这些路径?(棘手:从模式中获取正确的路径,处理所有定义方式,例如xs:group ref="..."或通过complexTypes等)

[插件:也许我必须将它扩展到我的 XML 中祖先元素的上下文。在示例情况下,我可能想区分//p/underline//span/underline。]

<xsl:message>please write your thoughts open minded. I don't request for fully functional code!</xsl:message>

0 投票
2 回答
603 浏览

xml - 使用 xslt 将两个 xml 文件中的信息合并为一个

文件 a.xml:

文件 b.xml:

并且输出文件应该是文件 a.xml,但如果匹配一两次,则将 TOBEEXTRACTED 元素文本附加到 [] 中:

此外,如果我们可以有一个 txt 文件作为输出,这将有很大帮助,它将包含以下信息:来自文件 a.xml,

0 投票
1 回答
754 浏览

xslt - XSLT 流式链式转换

我正在使用 Saxon EE 使用流式转换来转换一个非常大的文档。我现在需要链接多个 XSLT。如何做到这一点?不流式传输时,我使用 XSLTTransformer 类作为目标,进行链式转换。如果我没记错的话,我想我不能这样做,因为这会创建一个结果树而不是结果流。谢谢,阿尼

0 投票
2 回答
1805 浏览

java - 无法在java中使用xslt从json转换为xml

我正在尝试使用 Java 中的 XSLT 3.0 将 JSON 转换为 XML。当我运行 Java 程序时,它显示一个错误:Content is not allowed in prolog.

0 投票
1 回答
2615 浏览

xslt - XSLT 3.0 Streaming with Grouping and Sum/Accumulator

我试图弄清楚如何在需要分组(具有任意数量的组)并对组求和的场景中使用 XSLT Streaming(以减少内存使用)。到目前为止,我还没有找到任何例子。这是一个示例 XML

在 XSLT 2.0 中,我将使用它来按流派、条件和格式分组,并对计数求和。

对于输出,我会得到两行,Fantasy、New、Hardback 的总和为 5,Non-Fiction、New、Paperback 的总和为 4。

显然,这不适用于 Streaming,因为 sum 访问整个组。我想我需要遍历文档两次。我第一次可以构建组图(如果尚不存在,则创建一个新组)。第二次问题是我还需要每个组的累加器,其规则与组匹配,而且您似乎无法创建动态累加器。

有没有办法即时创建累加器?是否有另一种/更简单的方法可以使用流媒体来做到这一点?