web2got: Unterschied apply-template call-template?

Hallo,

also ich habe versucht im Internet eine Seite zu finden, die mir gut erklärt, wann man apply-template bzw. wann man call-template verwenden sollte. Insbesondere, wann man xsl:apply-template verwenden sollte und welche Vorteil es mit sich bringt gegenüber call-template. Gibt es dafür eine verständliche Erklärung?

Grüße,

  1. Moin!

    Bei apply-templates sucht sich der XSL Prozess selbständig heraus, welche Templates anzuwenden sind:
    <xsl:apply-templates select="Element|AnderesElement|DrittesElement"/> das würde sich also die passenden Templates für diese 3 Kindelemente suchen

    während Du bei call-temlpate selbst festlegst, welches Template zum Zuge kommt:
    <xsl:call-template name="templateFuerElement" select="Element"/>
    <xsl:call-template name="templateFuerAnderesElement" select="AnderesElement"/>
    <xsl:call-template name="templateFuerDrittesElement" select="DrittesElement"/>

    -- Skeeve

    1. Hallo,

      danke für die schnelle Antwort, was wären denn dann die "passenden" Templates? Wonach sucht der XSL Prozess bei apply-template dann? So ganz kjlar ist mir das noch nicht.

      <xsl:apply-templates select="Element|AnderesElement|DrittesElement"/> das würde sich also die passenden Templates für diese 3 Kindelemente suchen

      Grüße

      1. Moin!

        was wären denn dann die "passenden" Templates? Wonach sucht der XSL Prozess bei apply-template dann? So ganz kjlar ist mir das noch nicht.

        Was immer Du in Deinem XSL definiert hast.
        <xsl:template match="Element"> würde zum Beispiel zu "Element" passen
        <xsl:template match="*[@id]"> würde z.B. passen, wenn ein Element ein id Attribut hat.

        Aber das führt hier zu weit. Lies Dich mal lieber in die Tutorials. bei zvon.org ein. Da kannst du dann auch "spielen" um zu sehen, was passiert.

        -- Skeeve