我有一个运行XSLT组件的CMS。我试图创建一个包含任意数量的未知子组件列表的包装器组件。我想知道如何循环并显示每个子组件。我有一个包装器组件的XSL模板和一个允许添加到包装器的每个子组件的模板。到目前为止,我已经完成了......
<xsl:template match="MainContentWrapper">
<div class="wrapper-component" style="background-color:{BackgroundColor}; background-image:url('{$imagespath}/{BackgroundImage}')">
<div class="container">
<xsl:if test="Header != ''">
<div class="row">
<div class="col-xs-12">
<h3 class="wrapper-header"><xsl:value-of select="Header" disable-output-escaping="yes" /></h3>
</div>
</div>
</xsl:if>
<div class="row">
<xsl:for-each select="*[@Name='Item']">
<xsl:apply-templates />
</xsl:for-each>
</div>
</div>
</div>
</xsl:template>
然后我的子组件都有自己的&#34; xsl:模板匹配&#34;模板为他们设置。我只是想让一个作者能够创建一个包装器组件,然后在任何类型的包装器中抛出尽可能多的组件,而不是一个名为组件的集合。我有道理吗?哈哈。谢谢!
答案 0 :(得分:0)
使用node
,local-name
和name
函数来解决任意元素:
<!--Match any non-namespaced node-->
<xsl:template match="//node()[local-name() = name()]">
<xsl:apply-templates/>
</xsl:template>
<强>参考强>