我将会很简短。我在客户机上执行XSLT。输出是一个包含数据的report/html。报告由几个块组成,即一个块是xml文件中root-node的一个子元素。
在我的项目中,有n个报告驻留在n个不同的xslt文件中,并且这些报告可以具有相同的块。这意味着如果一个报告的一个块有问题,并且是在n个报告中,我必须每n个报告(xslt文件)更新一次。
所以我想把我的所有代码块放在模板(一种业务层)中,我可以通过xsl:include在这些报告的模板中重用这些模板。
所以伪代码是这样的:
<?xml version="1.0".....?>
<xsl:stylesheet version="1.0"....>
<xsl:include href="../../Blocks/MyBlock.xslt"/>
<xsl:template match='/'>
<xsl:apply-templates />
</xsl:template>
</xsl:stylesheet>
MyBlock.xslt:
<?xml version="1.0"....?>
<xsl:stylesheet version="1.0".....>
<xsl:template match='/root/rating'>
HTML OUTPUT
</xsl:template>
</xsl:stylesheet>我希望外面有人能理解我的问题。我需要关于如何去做的指针,如果这是一种方法。但它似乎不起作用。
发布于 2011-10-05 22:03:06
下面是我的经验,我是如何处理这个的。
这是我修改你的代码的例子。
<?xml version="1.0"?>
<xsl:stylesheet version="1.0">
<xsl:include href="../../Blocks/MyBlock.xslt"/>
<xsl:template match="/">
<xsl:apply-templates select="node()" mode="callingNode1"/>
</xsl:template>
</xsl:stylesheet>
MyBlock.xslt:
<?xml version="1.0"?>
<xsl:stylesheet version="1.0">
<xsl:template mode="callingNode1" match="*">
HTML OUTPUT
</xsl:template>
<xsl:template mode="callingNode2" match="/root/rating">
HTML OUTPUT
</xsl:template>
</xsl:stylesheet>这里我调用基于模式&匹配的节点。
https://stackoverflow.com/questions/7548981
复制相似问题