问题标签 [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 投票
4 回答
115387 浏览

xslt - XSL 中的“调用模板”和“应用模板”有什么区别?

我是 XSLT 的新手,所以我对这两个标签有点困惑,

那么你能列出它们之间的区别吗?

0 投票
2 回答
1447 浏览

xslt - 使用 xsl:apply-templates 处理字符串

我有一个看起来像这样的xml,

在渲染父级时,我必须保留换行符和缩进,而且还要对每个子标记应用突出显示模板。

现在,当我在变量中捕获父标记的内容以在 XSL 中进行一些字符串处理时,我丢失了底层 xml 结构并且无法将突出显示模板应用于子项。

然而,我想不出任何其他方法来保留父标记中包含的文本的换行符和缩进。

有任何想法吗?

0 投票
2 回答
242 浏览

xslt - XSLT 应用模板递归的厄运!

我必须遵循 XML 文档结构:

为了让事情保持干燥,这个想法是有许多不同的问题,它们共享共同的选项集。然后可以使用 XSLT 构建这些。我的模板如下:

这个想法是,一旦顶部模板与我的问题匹配,我将得到如下所示的内容:

...然后可以与底部模板匹配并放入我的 HTML 文档中。我的问题是如何创建实际执行此操作的(顶部)模板。我很接近,但这仍然不起作用:

转换后的问题块及其选项被复制到文档中,而不是被顶部模板拾取并制作成漂亮的 HTML。

如果我尝试这样做,<xsl:apply-templates select="."/>我就会陷入无限循环。

0 投票
2 回答
4230 浏览

xml - 在同一级别为同一 XML 元素呈现不同的模板

XML:

尝试生成为同一元素应用两个不同的模板。

主模板:

如果我将模式添加到第一个模板,两者都不会呈现。

也试过:

使用不同的模板应用为:

两者中只有一个(呈现具有指定模式的第一个)。IE

不渲染

<xsl:template match="Elements" mode="Different" />渲染两次。

我应该如何解决这个问题?在我研究的任何地方,它都建议优先考虑模式。这么多程序员都使用它,一定很简单吗?

0 投票
4 回答
3783 浏览

xslt - XSLT 1.0:应用模板和模板模式

我有以下 XML:

有时在item标签内我有 element <LINE_FREE_STOCK>。如果发生这种情况,我必须在输出 XML 中创建一个额外的位置。

现在我想出了这个样式表:

它创建了这个(简化的)想要的输出:

804-008165 和 804-008161 出现两次 - 一次作为标准项目,一次作为具有相应数量的免费库存项目。

但是我在这里忘记了什么吗?有什么我看不到的陷阱吗?XSLT 足够健壮吗?

0 投票
2 回答
2447 浏览

xslt - 变量函数中的xslt动态/条件应用模板?

我想根据用户想要的功能显示两种不同的 XSLT 转换。整个 XSL 文件是相同的,除了一行。

这条线应该是这样

或作为它

我的第一个想法是创建两个不同的 .xsl 文件,并将它们(javascript)应用于变量值的函数中。

但是,它只是一行,我只想维护一个文件。我想做这样的事情

但它不起作用。

尝试使用 xsl:apply-templates 中的功能“模式”,此代码均不起作用

-> http://www.xsltcake.com/slices/sgWUFu/2

  • 此代码不正确,因为 xsl:choose 不能是 xsl:stylesheet 的子级

已解决(在下面进行了改进),这是实现我想要的代码

改进:最终代码更容易阅读,此处重复的代码更少

我保留 apply-template 调用是因为我需要它,但没有它们(如在原始代码中,请参阅注释)甚至更简单。

再次感谢,不仅是为了回答,也是为了教授 XSLT :)

0 投票
1 回答
654 浏览

xml - XSLT 应用模板和字符串操作

我有一些像这样的 XML:

我无法更改 XML,我需要去掉段落开头的 (5),并使用父标记中的 number 属性创建一个带有适当标记的新段落编号:

问题是段落的其余部分可能包含更多需要转换的 XML,例如示例中的链接标记。

一旦我使用了 substring-after 函数,我不知道如何将模板应用于此。

0 投票
2 回答
1645 浏览

xml - 在 xslt 内部生成的元素上调用 xslt 模板

所以我使用 XSLT 的标识设计模式:

而且我确实有很多模板匹配不同的节点。现在我想做的是在一个 xsl:template 中生成一些代码,并让另一个 xsl:template 匹配新生成的代码。有谁知道如何做到这一点?


我想做的例子:

0 投票
2 回答
1056 浏览

xml - XML 和 XSLT 应用模板选择

这是 XML 文件:

这是 XSLT 文件:

输出是:

XSLT 中 root 的开始

监督布莱克控制

XSLT 中根的结尾

我的问题是,为什么 Alexis 和 Employee2 不是输出的一部分?他们都在<person>元素之下......

0 投票
1 回答
135 浏览

xslt - 如何对 xsl:copy 中的所有非选定元素执行应用模板?

假设我有以下 XSLT:

我意识到如果有其他节点类型,例如 DTS:Variable,它们将从生成的 XML 中过滤掉,因为没有 apply-templates 语句选择它们。

我的问题是:如何用一个 apply-templates 语句来结束副本,该语句选择之前的 apply-templates 语句中未指定的所有元素?

我试过类似的东西:

但这似乎不起作用。