XSLT-2.0:适用于除第一项之外的所有项的代码

XSLT-2.0:适用于除第一项之外的所有项的代码,xslt,foreach,xslt-2.0,xsl-variable,Xslt,Foreach,Xslt 2.0,Xsl Variable,考虑以下XML数据: <?xml version="1.0" encoding="UTF-8"?> <lieferungen> <artikel id="3526"> <name>apfel</name> <preis stueckpreis="true">8.97</preis> <lieferant>Fa. Krause</liefer

考虑以下XML数据:

<?xml version="1.0" encoding="UTF-8"?>
<lieferungen>
    <artikel id="3526">
        <name>apfel</name>
        <preis stueckpreis="true">8.97</preis>
        <lieferant>Fa. Krause</lieferant>
    </artikel>
    <artikel id="7866">
        <name>Kirschen</name>
        <preis stueckpreis="false">10.45</preis>
        <lieferant>Fa. Helbig</lieferant>
    </artikel>
    <artikel id="3526">
        <name>apfel</name>
        <preis stueckpreis="true">12.67</preis>
        <lieferant>Fa. Liebig</lieferant>
    </artikel>
    <artikel id="7866">
        <name>Kirschen</name>
        <preis stueckpreis="false">17.67</preis>
        <lieferant>Fa. Krause</lieferant>
    </artikel>
    <artikel id="3526">
        <name>apfel</name>
        <preis stueckpreis="true">9.54</preis>
        <lieferant>Fa. Mertes</lieferant>
    </artikel>
    <artikel id="7866">
        <name>Kirschen</name>
        <preis stueckpreis="false">16.45</preis>
        <lieferant>Fa. Hoeller</lieferant>
    </artikel>
    <artikel id="7868">
        <name>Kohl</name>
        <preis stueckpreis="false">3.20</preis>
        <lieferant>Fa. Hoeller</lieferant>
    </artikel>
    <artikel id="7869">
        <name>Kirschen</name>
        <preis stueckpreis="false">12.45</preis>
        <lieferant>Fa. Richard</lieferant>
    </artikel>
    <artikel id="3245">
        <name>Bananen</name>
        <preis stueckpreis="false">15.67</preis>
        <lieferant>Fa. Hoeller</lieferant>
    </artikel>
    <artikel id="6745">
        <name>Kohl</name>
        <preis stueckpreis="false">3.10</preis>
        <lieferant>Fa. Reinhardt</lieferant>
    </artikel>
    <artikel id="7789">
        <name>Ananas</name>
        <preis stueckpreis="true">8.60</preis>
        <lieferant>Fa. Richard</lieferant>
    </artikel>
    <artikel id="3225">
        <name>Bananen</name>
        <preis stueckpreis="false">15.67</preis>
        <lieferant>Fa. Schmidt</lieferant>
    </artikel>
</lieferungen>

如您所见,我的xslt代码对所有文章都非常有效,除了一篇:apfel(这是xml文件中列出的第一篇文章)。我觉得这简直是疯了。为什么我的xslt代码适用于除第一个项目之外的所有项目?

“Article”apfel“在第2行有id=“3526”,但在第12行有id=“3526”。“区别在于…”?名为apfel的arikel节点具有相同的id,即3526。您的代码比较了具有相同名称的arikel节点的id,因此工作正常。我可以确认前面的两条评论:XSLT工作正常(可能不是由您完成的,但是…)。对不起。。。。。你是对的。。。不知怎么的,我一直看到不同的ID,但它是一样的。。。可能我坐在电脑前太久了!!!谢谢大家的帮助!
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
    xmlns:xs="http://www.w3.org/2001/XMLSchema"
    exclude-result-prefixes="xs"
    version="2.0">

    <xsl:template match="lieferungen">
        <html>
            <head>
                <title>Inkonsistenzen</title>
            </head>
            <body>
                <h1>Inkonsistenzen</h1>
                <hr/>               
                <xsl:for-each-group select="artikel" group-by="name">
                    <p>
                        <xsl:text> Name: </xsl:text> 
                        <xsl:value-of select="current-grouping-key()"/>

                        <xsl:variable name="this_id" select="@id"/>

                        <xsl:text> Lieferant=  </xsl:text>
                        <xsl:value-of select="lieferant"/>

                        <xsl:text> , ID=</xsl:text>
                        <xsl:value-of select="$this_id"/>


                        <xsl:for-each select="current-group()">
                            <xsl:if test="$this_id != @id"> 
                                <xsl:text> Lieferant=  </xsl:text>
                                <xsl:value-of select="lieferant"/>

                                <xsl:text>; ID=</xsl:text>
                                <xsl:value-of select="@id"/>

                                <xsl:text> </xsl:text>
                            </xsl:if>
                        </xsl:for-each>
                    </p>

                </xsl:for-each-group>

            </body>
        </html>
    </xsl:template>
</xsl:stylesheet>
Name: apfel Lieferant= Fa. Krause , ID=3526
Name: Kirschen Lieferant= Fa. Helbig , ID=7866 Lieferant= Fa. Richard; ID=7869
Name: Kohl Lieferant= Fa. Hoeller , ID=7868 Lieferant= Fa. Reinhardt; ID=6745
Name: Bananen Lieferant= Fa. Hoeller , ID=3245 Lieferant= Fa. Schmidt; ID=3225
Name: Ananas Lieferant= Fa. Richard , ID=7789