【发布时间】:2015-07-11 19:34:18
【问题描述】:
目前我的 XSLT 中有以下结构:
<xsl:template match="/" xml:space="preserve">
<html>
<head>
<!--stuff here -->
</head>
<body>
<!--stuff here -->
<xsl:call-template name="page-content" />
<!--stuff here -->
</body>
</html>
</xsl:template>
上述文件正在被其他 XSLT 文件导入,这些文件实现了page-content 模板。这是一个示例页面内容模板:
<xsl:template name="page-content">
<div class="main-container">
<div class="row">
<xsl:apply-templates select="data/document/content/node()" mode="copy" />
</div>
</div>
</xsl:template>
我想获取page-content 返回的转换后的 XML,并匹配另一个模板。 (模板将向“主容器”添加另一个节点)。我正在使用 XSLT 3.0
我是否可以将 XML 转换两次,如果可以,我该怎么做?
【问题讨论】:
-
你的描述让我有些困惑。通常,您可以将转换结果放在变量中,而不是将其写入输出。然后对变量的内容应用另一个转换。
-
@michael.hor257k 我是这门语言的新手,所以我的术语不太好,抱歉。如果我明白你在说什么,我应该用
<xsl:variable>包围<xsl:call-template>,然后在上面调用<xsl:apply-templates>?如果是这样,您能否提供一个如何在变量上调用应用模板的示例? -
请编辑您的问题并包含 XML 输入的minimal, complete and verifiable sample、涉及的所有 XSLT 样式表以及您期望的输出。
-
我可以提供一个 simple 示例 - 但您拥有多个 XSLT 文件会使事情复杂化。而且您没有向我们展示它们之间的确切关系。
-
@michael.hor257k 我可以处理多个 XSLT 文件。一个简单的例子对我来说听起来不错。我想在这里学习概念,而不是找人为我编写代码。