XPath ancêtre et descendant en XSL-copie de

Je suis nouveau sur XPath, et de ce que j'en ai lu quelques tutoriels sur les axes, je suis toujours demander comment les mettre en œuvre. Ils ne sont pas tout à fait de se comporter comme je l'avais prévu. Je suis particulièrement intéressé par l'aide de l'ancêtre et descendant axes.

J'ai la structure XML suivante:

<file>
    <criteria>
        <root>ROOT</root>
        <criterion>AAA</criterion>
        <criterion>BBB</criterion>
        <criterion>CCC</criterion> 
    </criteria>
    <format>
        <sort>BBB</sort>
    </format>
</file>

Et j'ai le texte suivant XSL:

<xsl:template match="/">
    <xsl:copy-of select="ancestor::criterion/>
</xsl:template>

qui ne produit rien du tout!

Je m'attendais à produire:

<file>
    <criteria>
    </criteria>
</file>

Quelqu'un peut m'expliquer ancêtre et descendant axes pour moi plus utile que les tutoriels que j'ai déjà lus?

Merci!

Bonne question (+1). Voir ma réponse pour une explication et une solution complète.

OriginalL'auteur developer | 2010-06-01