• # XSLT

    Posté par . En réponse au message XML : ajouter un nouveau nœud autour d'un nœud existant. Évalué à 4. Dernière modification le 21 septembre 2013 à 22:42.

    XSLT est fait pour ça.
    Voici la «feuille de style» XSL qui permet d'obtenir ce résultat:

    <?xml version="1.0" encoding="UTF-8"?>
    <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
     <xsl:template match="tr[@class='pieddetable']">
     <tfoot>
     <xsl:copy>
     <xsl:apply-templates select="@*" />
     <xsl:apply-templates />
     </xsl:copy>
     </tfoot>
     </xsl:template>
     <xsl:template match="*|@*">
     <xsl:copy>
     <xsl:apply-templates select="@*" />
     <xsl:apply-templates />
     </xsl:copy>
     </xsl:template>
    </xsl:stylesheet>

    (note que je suppose ici que ton document d'origine n'a pas de namespace, sinon il faut en tenir compte)
    Ensuite tu peux appliquer cet XSL à tes fichiers avec xmlstarlet ou xsltproc.
    C'est un peu plus compliqué si tu peux avoir plusieurs tr dans une même table que tu veux regrouper dans un unique tfoot.