在xslt 2.0中,我可以将常见的xslt文件导入到两个文件中,其中一个输出xml而另一个输出html?

时间:2013-08-23 02:12:44

标签: xslt xslt-2.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。

这可能吗?

2 个答案:

答案 0 :(得分:0)

正如Ken Holman所说,答案是肯定的,你可以完全按照你的意思行事。

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

答案 1 :(得分:0)

简短:“是”。

长:使用命名输出。

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

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

<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" />

然后在result-document输出中使用其中一个定义的name方法:

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

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