• [^] # Re: xslt -> vraiment compliqué

    Posté par (site web personnel) . En réponse au message Shell script / parse XML, limites ?. Évalué à 3.

    xslt c'est le mal absolu, mais pour parser du xml, ça reste pratique. Pour éviter xslt, je crois qu'il n'y a pas d'autres choix que d'éviter xml...

    Ce script xslt fait le travail. Il s'utilise avec xsltproc (généralement installé par défaut) ainsi:
    xsltproc script.xslt fichier.xml

    <?xml version="1.0" encoding="UTF-8"?>
    <xsl:stylesheet version="1.0"
    xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    <xsl:output method="text"
     encoding="UTF-8"
     indent="no"/>
    <xsl:strip-space elements="*"/>
    <xsl:template match="title">
     
     <xsl:value-of select="../../@name"/>
     <xsl:text>;</xsl:text>
     
     <xsl:value-of select="../@ID"/>
     <xsl:text>;</xsl:text>
     
     <xsl:value-of select="../@niveau"/>
     <xsl:text>;</xsl:text>
     
     <xsl:apply-templates/>
     
     <xsl:text>&#xa;</xsl:text>
    </xsl:template>
    <xsl:template match="plugin"/>
    <xsl:template match="text"/>
    <xsl:template match="factor"/>
    </xsl:stylesheet>
     <xsl:value-of select="../../@name"/>
     <xsl:text>;</xsl:text>
     
     <xsl:value-of select="../@ID"/>
     <xsl:text>;</xsl:text>
     
     <xsl:value-of select="../@niveau"/>
     <xsl:text>;</xsl:text>
     
     <xsl:apply-templates/>
     
     <xsl:text>&#xa;</xsl:text>
    </xsl:template>
    <xsl:template match="plugin"/>
    <xsl:template match="text"/>
    <xsl:template match="factor"/>
    </xsl:stylesheet>
    

    PS: Visiblement, linuxfr n'aime pas xml non plus... Il faut couper au premier /xsl:stylesheet, et peut-être qu'il est possible de retrouver les commentaires dans les sources de la page web...