我正在使用xslt 2.0。我可以有一个由两个主样式表导入的常见xslt文件,其中一个输出html而另一个输出xml?
例如,假设我有common.xsl。它将xml转换为xml。
然后我有main_output_xml.xsl。这将导入common.xsl,其输出格式为xml。
我也有main_output_html.xsl。这也将导入common.xsl,但它的输出格式为html。
这可能吗?
答案 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,并且可以选择指定用于序列化该树的输出格式。“