问题标签 [apply-templates]

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 投票
5 回答
525 浏览

xslt - 其他语言中 XSLT 的两个概念:apply-templates 和 xpath

背景:在放弃了将 XSLT 作为我的编程工具包的一部分的日常实际使用之后,我想知道是否有其他语言的任何实现(仅)我错过了关于该工具的两件事:

  • 通过 xpath 使用“路径”样式语句遍历数据结构的能力
  • 使用应用模板而不是通过迭代或“循环”方法遍历模板转换的能力。

根据 Google 的说法,有一些努力为 Javascript 添加“xpath 样式”支持,但这些显然并没有很流行。到目前为止,我还没有发现有人在另一种语言中使用“应用模板”方法的任何东西

问题:有没有人知道一种编程语言(希望是主流语言)从 XSLT 中窃取了这两个好想法,或者使用不同的方法应用相同或相似的概念?

0 投票
1 回答
2208 浏览

xslt - 添加soap标头-更新节点-复制文档

我正在尝试将 Soap 标头添加到我的文档中并更新第一个 RS 节点

同时复制其余的文档节点。在我的真实示例中,我将在 RS 父节点中有更多节点,因此我正在寻找具有某种深层副本的解决方案。

我一直在阅读教程,但在了解模板以及在哪里实现它们时遇到了麻烦。

0 投票
3 回答
12880 浏览

xslt - XSLT:应用带有条件参数的模板?

我想根据条件的结果应用具有不同参数的模板。像这样的东西:

首先,我怀疑这可以通过更好的方式解决。(我对 XSLT 完全陌生,所以请提出改进​​建议并原谅臃肿的代码。)

现在的问题是:我怎么能根据这个条件设置参数,并且仍然在一个xsl:apply-templates?我试图xsl:choose用一个xsl:apply-templates开始/结束标签来包装整个,但这显然是不合法的。有什么线索吗?

0 投票
4 回答
24501 浏览

xslt - 如何将模板应用于 for-each 中的每个选定节点?

我知道我在这里遗漏了一些东西。在下面的 XSLT 转换中,实际结果与期望的结果不匹配。

在内部for-each,我想将match="track"模板应用于每个选定的track元素。如果我正确理解了 XSLT,那么在当前设置下,只有每个选定track元素的子节点与模板匹配,而不是track元素本身。

如何使track元素根据需要通过模板?我需要重新考虑我的整个方法吗?

注意:转换是使用 PHP 执行的。为简洁起见,省略了 XML 声明。

XML 文档:

XSL 样式表:

结果:

期望的结果:

0 投票
1 回答
570 浏览

java - XSLT / Xalan:从 Java 扩展中调用应用模板

我正在使用 Xalan 和 Java 来扩展样式表。

(与我在那里所做的类似示例:字典示例

我努力让我的标签做一个<xsl:apply-templates/>. 我希望有这个:

我的包含该方法的 java 类tag(XSLProcessorContext context, ElemExtensionCall elem)构建了一个元素myElem,如下所示:

但我希望将样式表中定义的模板应用到myElem.

如何<xsl:apply-templates/>从我的 Java 类中触发?是否可以 ?

0 投票
2 回答
683 浏览

xslt - 优化对于一组标签

怎么可能减少这个记录?

0 投票
1 回答
1700 浏览

xml - XSL 使用应用模板和匹配而不是调用模板

我正在尝试从使用调用模板过渡到使用应用模板和匹配,但我没有得到任何数据,只显示志愿者标签之间的数据。

当我使用调用模板时,它工作正常,但有人建议我使用应用程序模板和匹配,而不是它不起作用

任何想法如何使这项工作?然后我可以将它应用到我所有的样式表中。

和我的 xml 文件

0 投票
2 回答
7855 浏览

xslt - XSL 应用模板不起作用...可能是 XPath 错误

我已将 mny 样式表转换为使用应用模板而不是调用模板,并且它适用于我的另一个更复杂的样式表,但这个样式表似乎不起作用,即使它是一个更简单的模板。

它输出的只是性节点和用户级节点。我认为这与我的 Xpath 有关。

我想要的只是输出<用户>信息,仅此而已

和我的一些 xml

0 投票
1 回答
598 浏览

xml - XSL:如何根据单独的 XML 元素限制应用模板中的选择

这是我正在尝试做的一个例子。XML:

XSL:

这甚至可能吗?在实际的 xsl 中,我目前有这样的东西:

而且我想找到一种方法来限制基于 xml 中的不同元素选择的 ANSWER。希望我已经清楚地解释了这一点,如果我还没有,请告诉我。也许有更好的方法来做这样的事情。我愿意接受任何反馈或建议。谢谢。

0 投票
3 回答
45091 浏览

xslt - 使用“应用模板”的 XSL 命名参数“with-param”

我的问题在这篇文章的底部,如果你想在完整解释之前阅读它们。

我正在使用 XSL 将 XML 文档转换为漂亮的网页,并且无法正确传递变量。我xsl:template定义了许多 s,并且需要将特定参数传递给其中一个。我希望我能够传递一个命名参数,该参数可能会被发送到所有的xsl:templates,但只能被一个人使用而被其他人忽略。然而,当我试图为自己测试这个(以及我对 XSL 的有限理解)时,我根本无法传递参数,更不用说测试它是否意外地干扰了任何其他xsl:templates。

以下是简化的示例代码(为此问题键入,可能包含一两个错字)。我定义了许多不同xsl:template的 s 来处理 XML 中的节点,并且到目前为止一切正常。正是在向这些模板添加参数时,我似乎遇到了问题。

XML 文件:

主要的.xsl:

测试.xsl:

输出(实际):

输出(预期/期望):


我对此的问题:

  1. xsl:template是否可以使用 xsl:apply-templateswith 向我的所有 s 发送一个命名参数 xsl:with-param,但在实际模板中专门选择此值,name=以便它可以在单个模板中显式使用并被所有其他人忽略(即使我想添加其他模板的其他名称不同的参数)?

  2. 我当前的示例代码做错了什么,它似乎根本没有收到参数?

  3. 有没有更好的方法来实现这一点?

编辑:我想明确指出,由于test.xsl:testNode模板中的其他输出,我确定它被成功调用。只有参数部分不起作用我并不是要浪费人们的时间来弄清楚为什么没有调用该模板。这是。

更新:针对我最初收到的答案,指出我编写的示例并不完全正确(我的错误)并且没有很清楚地显示问题(即:正在调用正确的模板该参数似乎不起作用),我已将示例替换为更好的示例。这个例子更清楚地表明testNode模板被成功调用,但参数似乎没有被传递。在考虑这个问题的先前答案之前和之后,我已经测试了很多次。我完全被难住了,因为从我在别处读到的内容和人们迄今为止的建议来看,一切似乎都是正确的。