Html 如何将3个单独的XSLT文件从一个XML处理为一个输出?

Html 如何将3个单独的XSLT文件从一个XML处理为一个输出?,html,css,xml,xslt,Html,Css,Xml,Xslt,我有一个XSLT文件,它与XML一起处理HTML(目前使用X-trans和Notepad++)。我想做的是把它分成3个文件,页眉,正文和页脚 到目前为止,我已经尝试使用xsl:import&xsl:include,但每当我尝试处理它时,它都会说该文件无效。很明显我错过了什么有人能帮忙吗 标题XSLT: <?xml version="1.0"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL

我有一个XSLT文件,它与XML一起处理HTML(目前使用X-trans和Notepad++)。我想做的是把它分成3个文件,页眉,正文和页脚

到目前为止,我已经尝试使用xsl:import&xsl:include,但每当我尝试处理它时,它都会说该文件无效。很明显我错过了什么有人能帮忙吗

标题XSLT:

<?xml version="1.0"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
    <html lang="en-GB">
        <body style="font-family:'Praxis Com Light'; color:#632423; width:100%; font-size:14px !important;">


            <xsl:variable>variable1</xsl:variable>
            <xsl:variable>variable2</xsl:variable>
            <xsl:variable>variable3</xsl:variable>

            <div>Header</div>

        </body>
    </html>
</xsl:template>

变量1
变量2
变量3
标题

正文XSLT:

<?xml version="1.0"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
    <html lang="en-GB">
        <body style="font-family:'Praxis Com Light'; color:#632423; width:100%; font-size:14px !important;">


            <xsl:include href="Header.xsl"/>

            <xsl:variable>variable1</xsl:variable>
            <xsl:variable>variable2</xsl:variable>
            <xsl:variable>variable3</xsl:variable>

            <table>Main XSL file</table>

            <xsl:include href="Footer.xsl"/>


        </body>
    </html>
</xsl:template>

变量1
变量2
变量3
主XSL文件

页脚XSLT:

<?xml version="1.0"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
    <html lang="en-GB">
        <body style="font-family:'Praxis Com Light'; color:#632423; width:100%; font-size:14px !important;">


            <xsl:variable>variable1</xsl:variable>
            <xsl:variable>variable2</xsl:variable>
            <xsl:variable>variable3</xsl:variable>

            <p>Footer</p>


        </body>
    </html>
</xsl:template>

变量1
变量2
变量3
页脚


您只能使用
xsl:include
xsl:import
作为顶级元素,即分别作为
xsl:stylesheet
元素的直接子元素。因此,一种可能的方法是

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template name="header>


            <xsl:variable>variable1</xsl:variable>
            <xsl:variable>variable2</xsl:variable>
            <xsl:variable>variable3</xsl:variable>

            <div>Header</div>

</xsl:template>

</xsl:stylesheet>

不要忘记提供
variable1
和friends
@name
属性。
<?xml version="1.0"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:include href="Header.xsl"/>
<xsl:include href="Footer.xsl"/>

<xsl:template match="/">
    <html lang="en-GB">
        <body style="font-family:'Praxis Com Light'; color:#632423; width:100%; font-size:14px !important;">

            <xsl:call-template name="header"/>

            <xsl:variable>variable1</xsl:variable>
            <xsl:variable>variable2</xsl:variable>
            <xsl:variable>variable3</xsl:variable>

            <table>Main XSL file</table>

            <xsl:call-template name="footer"/>


        </body>
    </html>
</xsl:template>

</xsl:stylesheet>