首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >XSLT和应用模板的问题

XSLT和应用模板的问题
EN

Stack Overflow用户
提问于 2011-09-26 06:10:59
回答 1查看 373关注 0票数 1

我将会很简短。我在客户机上执行XSLT。输出是一个包含数据的report/html。报告由几个块组成,即一个块是xml文件中root-node的一个子元素。

在我的项目中,有n个报告驻留在n个不同的xslt文件中,并且这些报告可以具有相同的块。这意味着如果一个报告的一个块有问题,并且是在n个报告中,我必须每n个报告(xslt文件)更新一次。

所以我想把我的所有代码块放在模板(一种业务层)中,我可以通过xsl:include在这些报告的模板中重用这些模板。

所以伪代码是这样的:

代码语言:javascript
复制
<?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>

我希望外面有人能理解我的问题。我需要关于如何去做的指针,如果这是一种方法。但它似乎不起作用。

EN

回答 1

Stack Overflow用户

发布于 2011-10-05 22:03:06

下面是我的经验,我是如何处理这个的。

这是我修改你的代码的例子。

代码语言:javascript
复制
<?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>

这里我调用基于模式&匹配的节点。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7548981

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档