Précédent Index Suivant

3   XSLT

  1. Donnez le résultat de l'application de la feuille de style suivante au document (arbres) X1.xml :
    <?xml version="1.0" encoding="ISO-8859-1"?>
    <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
      <xsl:template match='/'>
          <xsl:apply-templates select='A'/>
      </xsl:template>
    
      <xsl:template match='A'>
        <A>
           <xsl:apply-templates select='B[1]'/>
           <B></B>
           <xsl:apply-templates select='C'/>
        </A>
      </xsl:template>
    
      <xsl:template match='B'>
        <B>
          <E> <xsl:value-of select='E'/> </E>
        </B>
      </xsl:template>
    
      <xsl:template match='C'>
        <C>
          <F> <xsl:value-of select='F'/> </F>
        </C>
        <C>
          <F>b</F>
        </C>
      </xsl:template>
    </xsl:stylesheet>
    
    Solution :
    <?xml version="1.0" encoding="utf-8"?>
    <A>
      <B>
        <E>4</E>
      </B>
      <B/>
      <C>
        <F>a</F>
      </C>
      <C>
        <F>b</F>
      </C>
    </A>
    
  2. Modifiez la feuille de style pour
    1. enlever tous les éléments (et ses sous-éléments) de type C
    2. remplacer tous les chemins A/B/E par le chemin A/E.

    Solution :
    <?xml version="1.0" encoding="ISO-8859-1"?>
    <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
      <xsl:template match='/'>
          <xsl:apply-templates select='A'/>
      </xsl:template>
    
      <xsl:template match='A'>
        <A>
           <xsl:apply-templates select='B[1]'/>
           <B></B>
           <xsl:apply-templates select='C'/>
        </A>
      </xsl:template>
    
      <xsl:template match='B'>
         <E> <xsl:value-of select='E'/> </E>
      </xsl:template>
    
      <xsl:template match='C'/>
    
    </xsl:stylesheet>
    

Précédent Index Suivant