我要简短一点。我在客户端上做XSLT。输出是带有数据的report / html。该报告由几个块组成,即一个块是xml文件中根节点的一个子元素。
我的项目中有n个不同的xslt文件中有n个报告,报告可以有相同的块。这意味着如果一个报告的一个块出现问题,并且它在n个报告中,我必须更新每个n报告(xslt文件)。
所以我想把我所有的块都放在模板(类似于业务层)中,我可以通过xsl重复使用我的报告:包含在这些报告的模板上。
所以伪就是这样的:
<?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>
我希望有人了解我的问题。如果这是一种方法,我需要指出如何解决这个问题。但它似乎没有用。
答案 0 :(得分:0)
以下是我如何处理此问题的经验。
这是我修改你的代码的例子。
<?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>
这是基于模式&amp;的匹配强>