<link href="/assets/64d0ba83aa42c90354ff97799bcfc0c2.css" type="text/css" rel="stylesheet"> <script src="/assets/6fd6663d5303bb7eda3ef7493fc29db6.js"></script> <script> $(document).ready(function() { anchors.options = { visible: 'hover', placement: 'right', truncate: 64 }; anchors.add('#body h2, #body h3, #body h4, #body h5'); }); </script> <script> hljs.initHighlightingOnLoad(); </script>
<h3>XSLT : xsl:template et xsl:apply-templates</h3> <h4>Points nouveaux abordés :</h4> <ul> <li>Règles modèle internes (<em>built in templates</em>)</li> <li>Templates et appel de templates : <code><xsl:template></code> et <code><xsl:apply-templates></code></li> <li>Construction de l'arbre du document de sortie : <code><xsl:copy></code>, <code><xsl:copy-of></code></li> </ul> <h4>Fichier XML à utiliser</h4> <p>Le fichiers XML <code>penda_mbaye_no_dtd.xml</code></p> <h4>Exercices</h4> <p><strong>Exercice 1</strong></p> <p>Appliquez la feuille de style « minimale » au fichier XML</p> <p><strong>Exercice 2</strong></p> <p>Faire une feuille de style XSLT permettant d'extraire de la recette les données XML de la liste d'ingrédients. <em>sans utiliser d'instruction xsl:for-each</em></p> <p>Vous devez obtenir en sortie le XML suivant :</p> <pre><code class="language-xml"><liste_ingrédients nb_convive="4 à 5"> <ingrédient quantité="1,5" unité="kg">poisson maigre ou charnu</ingrédient> <ingrédient quantité="50" unité="g">fruits de mer (moules, coques, crevettes...) <important>bien frais</important></ingrédient> <ingrédient quantité="150" unité="g">tomate concentrée</ingrédient> <ingrédient quantité="150" unité="g">oignons</ingrédient> ………… </liste_ingrédients></code></pre> <p>Plusieurs solutions, en utilisant ce fichier XML :</p> <ul> <li><a href="/exercices/xslt/template/recette2liste_de_course.xsl">Sans récupération des attributs</a></li> <li><a href="/exercices/xslt/template/recette2liste_de_course_avec_attribut.xsl">Avec récupération des attributs</a></li> <li><a href="/exercices/xslt/template/recette2liste_de_course_avec_copy.xsl">En utilisant <code><xsl:copy></code></a></li> <li><a href="/exercices/xslt/template/recette2liste_de_course_avec_copy-of.xsl">En utilisant <code><xsl:copy-of></code></a> (la plus concise)</li> <li><a href="/exercices/xslt/template/recette2liste_de_course_par_elimination.xsl">En utilisant un modèle "identité"</a></li> </ul> <p><strong>Exercice 3</strong></p> <p>Faire une feuille de style XSLT permettant d'extraire de la recette les données XML de la liste d'ingrédients dans un format textuel. <em>sans utiliser d'instruction xsl:for-each</em></p> <p>Vous devez obtenir en sortie le XML suivant :</p> <p>Liste de course :</p> <ul> <li>1,5kg poisson maigre ou charnu</li> <li>50g fruits de mer (moules, coques, crevettes...) bien frais</li> <li>150g tomate concentrée</li> <li>150g oignons</li> <li>500g riz</li> <li>3 aubergines</li> <li>3 carottes</li> <li>3 navets</li> <li>piment</li> <li>200g tomates fraîches</li> <li>poivron vert</li> <li>chou-fleur</li> <li>huile d'olive</li> <li>1 gousse d'ail</li> <li>sel</li> <li>poivre (Fin de la liste) Boisson : un bandol blanc</li> </ul> <p><a href="/exercices/xslt/template/recette2liste_de_course_txt.xsl">Une solution possible</a></p>