XSLT - 具有1个xlst文件的多格式输出

时间:2016-11-18 02:48:43

标签: xml xslt

1 xsl文件中可以有2个输出方法吗? 我想实现这个目标 html文件夹< - 其中的所有html文件
root(主文件夹)< - xml文件

我的下面代码只生成xml文件,没有创建html文件夹文件夹,也没有生成html文件

以下是xlst:

<xsl:output method="text"/>
<xsl:output method="html" indent="yes" name="html"/>

<xsl:variable name="filename" select="concat('chapter1', '.html')"/>
<xsl:value-of select="$filename"/>
<xsl:result-document href="main-folder/html-folder/{$filename}" format="html">


<xsl:output method="text"/>
<xsl:output method="xml" indent="yes" name="xml"/>
<xsl:result-document href="mainfolder/index.xml" method="xml" encoding="UTF-8" indent="yes">

1 个答案:

答案 0 :(得分:0)

是的,这是可能的,但首先检查您的XSL以确保遵循这些规则:

  • 始终正确关闭每个节点。
  • 每个样式表/结果文档只应定义一次输出方法。
  • 使用结果文档时,不应覆盖同一文件。

结果文档中的输出方法(以及formatindent)必须通过适当的属性设置:

<xsl:result-document method="xml" format="" indent="yes" ...>

修复你的XSL将是这样的:

<xsl:variable name="filename" select="concat('chapter1', '.html')"/>

<xsl:result-document href="main-folder/html-folder/{$filename}" method="html" indent="yes">
    ...
</xsl:result-document>

<xsl:result-document href="mainfolder/index.xml" method="xml" encoding="UTF-8" indent="yes">
    ...
</xsl:result-document>

result-document的官方文档。