XSLT:在当前处理方式中使用不同的处理方式

XSLT:在当前处理方式中使用不同的处理方式,xslt,templates,process,Xslt,Templates,Process,下面我尝试匹配某些节点 <xsl:template match="nodes"> <element> <xsl:apply-templates select="nodes" mode="different" /> </element> </xsl:template> 现在,这是行不通的。只处理第一种类型的处理,而不应用apply templates调用 具体来说: <xsl:templat

下面我尝试匹配某些节点

<xsl:template match="nodes">    
    <element>
        <xsl:apply-templates select="nodes" mode="different" />
    </element>
</xsl:template>
现在,这是行不通的。只处理第一种类型的处理,而不应用
apply templates
调用

具体来说:

<xsl:template match="Foundation.Core.Association.connection">
    <xsl:for-each select="Foundation.Core.AssociationEnd">
        <someElement>
                <xsl:apply-templates select="Foundation.Core.Association.connection" mode="different" />
        </someElement>      
    </xsl:for-each>
</xsl:template>

如您所见,我选择了
Foundation.Core.Association.connection
。当然这是错误的,但是在给定当前元素和位置的情况下,如何引用此元素?考虑到德里克的评论,这应该可以做到

我做错了什么,如何使用XSLT获得我想要的东西?解决这个问题的另一种方法是什么

谢谢。

如果“节点”指的是包含匹配中的同一组节点,请尝试:

<xsl:template match="nodes">    
    <element>
        <xsl:apply-templates select="." mode="different" />
    </element>
</xsl:template>



如您所见,我选择 基础。 当然这是错误的,但是我该怎么做呢 请参考给定的元素 当前元素和位置

使用

<xsl:apply-templates select=".." mode="different" />

要以不同方式处理的元素是当前节点的父节点


当然,如果您能够展示更多的XML文档并以更简洁的方式表述问题,那么很可能根本不需要这种复杂的处理。这一点将得到证实。

您的XML看起来像什么?XML输入非常复杂。。我在一个for-each中使用一个for-each,需要在第二个for-each中使用第一个for-each的属性。。
<xsl:template match="Foundation.Core.Association.connection">

    <xsl:for-each select="Foundation.Core.AssociationEnd">

        <someElement> 
                <xsl:apply-templates
<xsl:apply-templates select=".." mode="different" />