为什么相对路径不能用于xsl:include?

abc*_*d d 3 css xml xslt

我有一个XSL文件,可以转换为PDF。在此页面的顶部,我有一个很长的CSS样式,例如

<xsl:attribute-set name="Header">
    <xsl:attribute name="font-size">
        <xsl:value-of select="$font-size"/>
    </xsl:attribute>
    <xsl:attribute name="font-weight">bold</xsl:attribute>
    <xsl:attribute name="text-align">center</xsl:attribute>
</xsl:attribute-set>
...
Run Code Online (Sandbox Code Playgroud)

渲染需要很长时间,因此我将它们复制到另一个位置的新页面(PDF_style.xsl)中。然后我用

<xsl:include href="../allStyles/PDF_style.xsl"/>
Run Code Online (Sandbox Code Playgroud)

但是当我测试它时,系统说它无法归档该文件位置!

注意:allStyles是我存储每个样式表文件的文件夹,并且路径是正确的路径。

<xsl:include href="..." />链接外部文件的正确方法吗?还是我必须使用其他东西?

kjh*_*hes 5

对于相对路径xsl:include/@href或者xsl:import/@href针对不包括的或进口的XSLT文件的目录解析

因此,如果您的XSLT文件是

/xslt/my.xsl
Run Code Online (Sandbox Code Playgroud)

那么PDF_style.xsl文件必须在这里:

/allStyles/PDF_style.xsl
Run Code Online (Sandbox Code Playgroud)

为了

<xsl:include href="../allStyles/PDF_style.xsl" />
Run Code Online (Sandbox Code Playgroud)

是正确的/xslt/my.xsl