0

我正在使用 xslt 2.0。我可以有一个由两个主要样式表导入的通用 xslt 文件,其中一个输出 html,另一个输出 xml?

例如,假设我有 common.xsl。它将xml转换为xml。

然后我有 main_output_xml.xsl。这将导入 common.xsl,其输出格式为 xml。

我也有 main_output_html.xsl。这也将导入 common.xsl,但它的输出格式为 html。

这可能吗?

4

2 回答 2

0

正如肯霍尔曼所说,答案是肯定的,你可以完全按照你的建议去做。

@Nalaka526 如果您阅读了该问题,那么您会发现它只需要“是”或“否”的答案。我的答案更长的唯一原因是 SO 不允许简短的答案。

于 2013-08-23T08:57:02.990 回答
0

简短:“是的”。

Long:使用命名输出。

首先,在 XSLT 的顶层定义不同的输出选项。

“20 序列化......一个样式表可能包含多个 xsl:output 声明,并且可能包含或导入也包含 xsl:output 声明的样式表模块。声明的名称xsl:output是其名称属性的值,如果有的话。”

<xsl:output name="text" method="text" indent="no" encoding="utf-8" />
<xsl:output name="default" indent="no" method="html"  encoding="utf-8" doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"
     doctype-public="-//W3C//DTD XHTML 1.0 Transitional//EN" />

然后在结果文档输出中使用定义的name方法之一:

<xsl:result-document href="output_file.txt" format="text">
...
</xsl:result-document>

“19.1 创建最终结果树......该xsl:result-document指令定义了结果树的 URI,并且可以选择指定用于序列化该树的输出格式。”

于 2013-08-24T23:51:45.537 回答