Templates XSLT1.0模板Muenchian分组
我使用的工具中,xslt模板是预定义的,不希望删除它Templates XSLT1.0模板Muenchian分组,templates,xslt-1.0,muenchian-grouping,Templates,Xslt 1.0,Muenchian Grouping,我使用的工具中,xslt模板是预定义的,不希望删除它 <xsl:template match="/"> <Msg xmlns="urn:com.sap.b1i.vplatform:entity"> <xsl:copy-of select="/vpf:Msg/@*"></xsl:copy-of> <xsl:copy-of select="/vpf:Msg/vpf:Header"></xsl:copy-of> <
<xsl:template match="/">
<Msg xmlns="urn:com.sap.b1i.vplatform:entity">
<xsl:copy-of select="/vpf:Msg/@*"></xsl:copy-of>
<xsl:copy-of select="/vpf:Msg/vpf:Header"></xsl:copy-of>
<Body>
<xsl:copy-of select="/vpf:Msg/vpf:Body/*"></xsl:copy-of>
<Payload Role="X" id="{$atom}">
<xsl:call-template name="transform"></xsl:call-template>
</Payload>
</Body>
</Msg>
现在我想使用Muenchian分组方法。但是对于这种方法,您还需要定义一个模板en键。像这样:
<xsl:key name="KeyOrder" match="/vpf:Msg/vpf:Body/vpf:Payload[@id='atom8']/Orders/jdbc:Row" use="jdbc:RecId2" />
<xsl:template match="Orders" >
<Documents>
<xsl:for-each select="jdbc:Row[count(. | key('KeyOrder', jdbc:RecId2)[1]) = 1]">
<xsl:sort select="jdbc:RecId2" />
<Document>
<xsl:copy-of select="jdbc:RecId2" />
<xsl:for-each select="key('KeyOrder', jdbc:RecId2)">
<xsl:sort select="jdbc:OrderNrRef" />
<xsl:copy-of select="." />
</xsl:for-each>
</Document>
</xsl:for-each>
</Documents>
</xsl:template>
问题是这两个模板不能像我在这里复制的那样一起工作。也就是说,我没有得到穆钦分组的结果。只有当我“禁用”xsl:template match=“/”时,它才起作用,但随后我会丢失很多其他信息,这些信息在过程中是进一步需要的
那么,我如何才能在XML文件中获得这两个模板的结果呢?我不确定我是否完全理解,但您能否向名为
转换
的模板添加
?嗨,丹尼尔,谢谢。我将该行添加到“transform”模板中,它可以正常工作。我在XML中收到这两个结果。