<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>Modes de sortie</h3> <p>Dans ces exercices, vous utiliserez le document <code>recette_penda_mbaye.xml</code>. </p> <ol> <li>Créez une feuille de style XSLT permettant de généré une liste d'ingrédients au format <a href="http://daringfireball.net/projects/markdown/" title="markdown">Markdown</a>, avec un encodage UTF-8. Vous devez obtenir ce résultat : <pre><code class="language-markdown">#Liste des ingrédients : * poisson maigre ou charnu * fruits de mer (moules, coques, crevettes...) _bien frais_ * tomate concentrée * oignons * riz * aubergines * carottes * navets * piment * tomates fraîches * poivron vert * chou-fleur * huile d'olive * gousse d'ail * sel * poivre</code></pre></li> <li>Modifiez votre feuille de style afin de prendre en compte l'attribut <code>@type</code> de l'élement <code>&lt;accord_boisson&gt;</code> . Vous devez obtenir un item supplémentaire :</li> </ol> <pre><code>* vin blanc</code></pre> <ol start="4"> <li>Créez une feuille de style XSLT permettant de généré une liste d'ingrédients au format HTML. Vous devez obtenir <a href="/exercices/xslt/mode_sortie/ingredients.html">ce résultat</a>:</li> </ol> <pre><code class="language-html">&lt;html&gt; &lt;head&gt; &lt;meta http-equiv="content-type" content="text/html; charset=utf-8"&gt; &lt;title&gt; : liste des ingrédients&lt;/title&gt; &lt;/head&gt; &lt;body&gt; &lt;h1&gt;Liste des ingrédients&lt;/h1&gt; &lt;ul&gt; &lt;li&gt;poisson maigre ou charnu&lt;/li&gt; &lt;li&gt;fruits de mer (moules, coques, crevettes...) &lt;strong&gt;bien frais&lt;/strong&gt; &lt;/li&gt; &lt;li&gt;tomate concentrée&lt;/li&gt; &lt;li&gt;oignons&lt;/li&gt; &lt;li&gt;riz&lt;/li&gt; &lt;li&gt;aubergines&lt;/li&gt; &lt;li&gt;carottes&lt;/li&gt; &lt;li&gt;navets&lt;/li&gt; &lt;li&gt;piment&lt;/li&gt; &lt;li&gt;tomates fraîches&lt;/li&gt; &lt;li&gt;poivron vert&lt;/li&gt; &lt;li&gt;chou-fleur&lt;/li&gt; &lt;li&gt;huile d'olive&lt;/li&gt; &lt;li&gt;gousse d'ail&lt;/li&gt; &lt;li&gt;sel&lt;/li&gt; &lt;li&gt;poivre&lt;/li&gt; &lt;/ul&gt; &lt;/body&gt; &lt;/html&gt; </code></pre> <ol start="6"> <li>Créez une feuille de style XSLT permettant de généré une liste d'ingrédients dans un format XML donné. Vous devez obtenir <a href="/exercices/xslt/mode_sortie/ingredients.xml">ce résultat</a> :</li> </ol> <pre><code class="language-xml">&lt;?xml version="1.0" encoding="UTF-8"?&gt; &lt;fournitures&gt; &lt;itemlist&gt; &lt;item&gt;poisson maigre ou charnu&lt;/item&gt; &lt;item&gt;fruits de mer (moules, coques, crevettes...) &lt;warning&gt;bien frais&lt;/warning&gt;&lt;/item&gt; &lt;item&gt;tomate concentrée&lt;/item&gt; &lt;item&gt;oignons&lt;/item&gt; &lt;item&gt;riz&lt;/item&gt; &lt;item&gt;aubergines&lt;/item&gt; &lt;item&gt;carottes&lt;/item&gt; &lt;item&gt;navets&lt;/item&gt; &lt;item&gt;piment&lt;/item&gt; &lt;item&gt;tomates fraîches&lt;/item&gt; &lt;item&gt;poivron vert&lt;/item&gt; &lt;item&gt;chou-fleur&lt;/item&gt; &lt;item&gt;huile d'olive&lt;/item&gt; &lt;item&gt;gousse d'ail&lt;/item&gt; &lt;item&gt;sel&lt;/item&gt; &lt;item&gt;poivre&lt;/item&gt; &lt;/itemlist&gt; &lt;/fournitures&gt; </code></pre> <ol start="8"> <li>Améliorez vos feuilles de style afin de faire apparaître les quantités dans la liste. Ex. "oignon (150g)".</li> </ol> <h2>Correction</h2> <ul> <li><a href="/exercices/xslt/mode_sortie/ingredients2markdown.xsl">ingredients2markdown.xsl</a></li> </ul> <pre><code class="language-xml">&lt;?xml version="1.0" encoding="utf-8"?&gt; &lt;xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"&gt; &lt;xsl:output method="text" encoding="UTF-8"/&gt; &lt;xsl:template match="/recette"&gt; &lt;xsl:apply-templates select="liste_ingrédients"/&gt; &lt;/xsl:template&gt; &lt;xsl:template match="liste_ingrédients"&gt; &lt;xsl:text&gt;#Liste des ingrédients :&lt;/xsl:text&gt; &lt;xsl:text&gt;&amp;#xa;&lt;/xsl:text&gt; &lt;!-- &amp;#xa; est le caractère saut de ligne --&gt; &lt;xsl:apply-templates select="ingrédient"/&gt; &lt;/xsl:template&gt; &lt;xsl:template match="ingrédient"&gt; &lt;xsl:text&gt;* &lt;/xsl:text&gt; &lt;xsl:apply-templates/&gt; &lt;xsl:text&gt;&amp;#xa;&lt;/xsl:text&gt; &lt;/xsl:template&gt; &lt;xsl:template match="important"&gt; &lt;xsl:text&gt;_&lt;/xsl:text&gt; &lt;xsl:value-of select="."/&gt; &lt;xsl:text&gt;_&lt;/xsl:text&gt; &lt;/xsl:template&gt; &lt;/xsl:stylesheet&gt;</code></pre> <ul> <li><a href="/exercices/xslt/mode_sortie/ingredients2html.xsl">ingredients2html.xsl</a></li> </ul> <pre><code class="language-xml">&lt;?xml version="1.0" encoding="utf-8"?&gt; &lt;xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"&gt; &lt;xsl:output method="html" encoding="UTF-8"/&gt; &lt;xsl:template match="/recette"&gt; &lt;html&gt; &lt;head&gt; &lt;meta http-equiv="content-type" content="text/html; charset=utf-8" /&gt; &lt;title&gt; &lt;xsl:value-of select = "title"/&gt; &lt;xsl:text&gt; : liste des ingrédients&lt;/xsl:text&gt; &lt;/title&gt; &lt;/head&gt; &lt;body&gt; &lt;xsl:apply-templates select="liste_ingrédients"/&gt; &lt;/body&gt; &lt;/html&gt; &lt;/xsl:template&gt; &lt;xsl:template match="liste_ingrédients"&gt; &lt;h1&gt;Liste des ingrédients&lt;/h1&gt; &lt;ul&gt; &lt;xsl:apply-templates select="ingrédient"/&gt; &lt;/ul&gt; &lt;/xsl:template&gt; &lt;xsl:template match="ingrédient"&gt; &lt;li&gt; &lt;xsl:apply-templates/&gt; &lt;/li&gt; &lt;/xsl:template&gt; &lt;xsl:template match="important"&gt; &lt;strong&gt; &lt;xsl:value-of select="."/&gt; &lt;/strong&gt; &lt;/xsl:template&gt; &lt;/xsl:stylesheet&gt;</code></pre> <ul> <li><a href="/exercices/xslt/mode_sortie/ingredients2xsl.xsl">ingredients2xsl.xsl</a></li> </ul> <pre><code class="language-xml">&lt;?xml version="1.0" encoding="utf-8"?&gt; &lt;xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"&gt; &lt;xsl:output method="xml" indent="yes" encoding="UTF-8"/&gt; &lt;xsl:template match="/recette"&gt; &lt;fournitures&gt; &lt;xsl:apply-templates select="liste_ingrédients"/&gt; &lt;/fournitures&gt; &lt;/xsl:template&gt; &lt;xsl:template match="liste_ingrédients"&gt; &lt;itemlist&gt; &lt;xsl:apply-templates select="ingrédient"/&gt; &lt;/itemlist&gt; &lt;/xsl:template&gt; &lt;xsl:template match="ingrédient"&gt; &lt;item&gt; &lt;xsl:apply-templates/&gt; &lt;/item&gt; &lt;/xsl:template&gt; &lt;xsl:template match="important"&gt; &lt;warning&gt; &lt;xsl:value-of select="."/&gt; &lt;/warning&gt; &lt;/xsl:template&gt; &lt;/xsl:stylesheet&gt;</code></pre>