gpt4 book ai didi

xslt - 具有动态节点的 XSL 调用模板

转载 作者:行者123 更新时间:2023-12-01 04:44:08 26 4
gpt4 key购买 nike

你好,我需要在我的 XSL 中实现以下功能,但似乎我被卡住了......非常感谢任何帮助。

请在下面的代码片段中查看我的评论。

<xsl:template name="/">
<xsl:call-template name="looptemplate">
<xsl:with-param name="x" select="1"/>
<xsl:with-param name="max" select="10"/>
</xsl:call-template>
</xsl:template>

<xsl:template name=" looptemplate">
<xsl:param name="x"/>
<xsl:param name="max"/>

<xsl:call-template name="TemplateToCall">
<xsl:with-param name="nodePath" select="a/b$i"></xsl:with-param>

<!--
Get dynamically root nodes
a/b1, a/b2, a/b3 etc
-->

</xsl:call-template>
<!--
Loop again until x reaches max
-->
</xsl:template>

<xsl:template name="TemplateToCall">
<xsl:param name="nodePath"/>

<xsl:for-each select="$nodePath">
<xsl:value-of select="value1"/>, <xsl:value-of select="value2"/>
</xsl:for-each>
</xsl:template>

最佳答案

您不能将 XPath 构建为字符串并像那样对其动态求值(至少在普通的 XSLT 1.0 或 2.0 中不行,在 XSLT 3.0 中会有一个 xsl:evaluate instruction),但您可以做类似的事情

<xsl:call-template name="TemplateToCall">
<xsl:with-param name="nodes" select="a/*[local-name() = concat('b', $i)]"/>

然后在调用的模板中

<xsl:template name="TemplateToCall">
<xsl:param name="nodes"/>

<xsl:for-each select="$nodes">

关于xslt - 具有动态节点的 XSL 调用模板,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19315213/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com