xslt中的递归调用
这是我的输入xmlxslt中的递归调用,xslt,recursion,Xslt,Recursion,这是我的输入xml <Nodes> <Node Name = "a"/> <Node Name = "b"/> <Node Name = "c"/> <Node Name = "d"/> <Node Name = "e"/> </Nodes> 我的输出应该如下所示: 您可以看到的输出xml应该为每个节点递归调用。 节点a应该是最后一个,下一个节点应该从底部显示,正如您在输出xml中看到的那样 <Row
<Nodes>
<Node Name = "a"/>
<Node Name = "b"/>
<Node Name = "c"/>
<Node Name = "d"/>
<Node Name = "e"/>
</Nodes>
我的输出应该如下所示:
您可以看到的输出xml应该为每个节点递归调用。
节点a应该是最后一个,下一个节点应该从底部显示,正如您在输出xml中看到的那样
<Rows>
<Node>
<NestedNodes>
<Node>
<NestedNodes>
<Node>
<NestedNodes>
<Node>
<NestedNodes>
<Node>
<NodeMembers>
<NodeMember refDataItem="e"/>
</NodeMembers>
</Node>
</NestedNodes>
<NodeMembers>
<NodeMember refDataItem="d"/>
</NodeMembers>
</Node>
</NestedNodes>
<NodeMembers>
<NodeMember refDataItem="c"/>
</NodeMembers>
</Node>
</NestedNodes>
<NodeMembers>
<NodeMember refDataItem="b"/>
</NodeMembers>
</Node>
</NestedNodes>
<NodeMembers>
<NodeMember refDataItem="a"/>
</NodeMembers>
</Node>
每个“节点”应采用以下结构:
<Node>
<NestedNodes>
<Node>
<NodeMembers>
<NodeMember refDataItem="e"/>
</NodeMembers>
</Node>
</NestedNodes>
<NodeMembers>
<NodeMember refDataItem="d"/>
</NodeMembers>
</Node>
NodeMember元素应该包含节点名,即'a'/'b'/'c'/'d'/'e'
我试图通过应用递归来实现这一点,但它似乎不起作用。我无法循环回节点。谁能帮帮我吗 此XSLT 1.0转换
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="Nodes">
<xsl:apply-templates select="Node[1]" />
</xsl:template>
<xsl:template match="Node">
<xsl:copy>
<xsl:if test="following-sibling::Node">
<NestedNodes>
<xsl:apply-templates select="following-sibling::Node[1]" />
</NestedNodes>
</xsl:if>
<NodeMembers>
<NodeMember refDataItem="{@Name}"/>
</NodeMembers>
</xsl:copy>
</xsl:template>
</xsl:stylesheet>
给你
<Node>
<NestedNodes>
<Node>
<NestedNodes>
<Node>
<NestedNodes>
<Node>
<NestedNodes>
<Node>
<NodeMembers>
<NodeMember refDataItem="e"/>
</NodeMembers>
</Node>
</NestedNodes>
<NodeMembers>
<NodeMember refDataItem="d"/>
</NodeMembers>
</Node>
</NestedNodes>
<NodeMembers>
<NodeMember refDataItem="c"/>
</NodeMembers>
</Node>
</NestedNodes>
<NodeMembers>
<NodeMember refDataItem="b"/>
</NodeMembers>
</Node>
</NestedNodes>
<NodeMembers>
<NodeMember refDataItem="a"/>
</NodeMembers>
</Node>
我不确定这种嵌套将实现什么功能?如果每个
都只有一个嵌套节点,那么实际上不需要树,也可以将其作为列表保存。