XSLT:运行没有<xi:include> resolve themelves </xi:include>的样式表

时间:2011-01-14 20:20:29

标签: xml xslt

我正在尝试在每个<xi:include>元素之后添加处理指令。

<xsl:template match="@*|node()" name="identity">
    <xsl:copy>
        <xsl:apply-templates select="@*|node()"/>
    </xsl:copy>
</xsl:template>
<xsl:template match="xi:include">
    <xsl:call-template name="identity"/>
    <xsl:processing-instruction name="hard-pagebreak"/>
</xsl:template>

问题在于,只要我将其应用于我的contents.xml文件(这是一大堆<xi:include>的列表),标记就会被解析,文件基本上被展平(即{{ 1}}被替换为它们所代表的内容。每当我在contents.xml

上运行任何样式表时,这似乎都会发生

有没有办法在没有<xi:include>解析的情况下运行样式表?也许在样式表的持续时间内关闭一个xslt解析器???

2 个答案:

答案 0 :(得分:1)

使用不理解xi:include的XML解析器或设置正确的开关以防止解析器进行xi:include处理。

如果无法做到这些,那么您必须将处理包含在生成xi:include元素的同一转换中。

答案 1 :(得分:0)

您只需要使用不了解<xi:include>标记的XSLT处理器。你现在用什么来运行XSLT?

我很确定Microsoft XSLT处理器不会处理这些:

http://www.microsoft.com/downloads/en/details.aspx?FamilyID=2fb55371-c94e-4373-b0e9-db4816552e41&displaylang=en