Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente |
slam:donneestructurees:le_format_xml_3 [2025/01/09 13:19] – [XML et XSLT] dthevenot | slam:donneestructurees:le_format_xml_3 [2025/01/17 09:39] (Version actuelle) – [Observez un exemple et appliquez-le à votre bibliographie] dthevenot |
---|
====== Le XML (3) - mise en forme ====== | ====== Le XML (3) - mise en forme ====== |
XSL (eXtensible Stylesheet Language) est un langage de style pour XML. | <bootnote>Exécuter les fichiers depuis un serveur web personnel local, la plupart des navigateurs ont désactivé ou restreint la prise en charge des transformations xslt pour des raisons de sécurité</bootnote> |
XSLT signifie Transformations XSL. XSLT permet de transformer des documents XML dans d'autres formats (comme transformer XML en HTML). | * **XSL** (eXtensible Stylesheet Language) est un langage de style pour XML. |
| * **XSLT** signifie "Transformations XSL" : permet de transformer des documents XML dans d'autres formats (comme transformer XML en HTML par exemple). |
| |
===== XML et XSLT ===== | ===== XML et XSLT ===== |
<?xml-stylesheet href="menu.xsl" type="text/xsl"?> | <?xml-stylesheet href="menu.xsl" type="text/xsl"?> |
<breakfast_menu> | <breakfast_menu> |
<food> | <food> |
<name>Belgian Waffles</name> | <name>Belgian Waffles</name> |
<price>$5.95</price> | <price>$5.95</price> |
<description>Two of our famous Belgian Waffles with plenty of real maple syrup</description> | <description>Two of our famous Belgian Waffles with plenty of real maple syrup</description> |
<calories>650</calories> | <calories>650</calories> |
</food> | </food> |
<food> | <food> |
<name>Strawberry Belgian Waffles</name> | <name>Strawberry Belgian Waffles</name> |
<price>$7.95</price> | <price>$7.95</price> |
<description>Light Belgian waffles covered with strawberries and whipped cream</description> | <description>Light Belgian waffles covered with strawberries and whipped cream</description> |
<calories>900</calories> | <calories>900</calories> |
</food> | </food> |
<food> | <food> |
<name>Berry-Berry Belgian Waffles</name> | <name>Berry-Berry Belgian Waffles</name> |
<price>$8.95</price> | <price>$8.95</price> |
<description>Light Belgian waffles covered with an assortment of fresh berries and whipped cream</description> | <description>Light Belgian waffles covered with an assortment of fresh berries and whipped cream</description> |
<calories>900</calories> | <calories>900</calories> |
</food> | </food> |
<food> | <food> |
<name>French Toast</name> | <name>French Toast</name> |
<price>$4.50</price> | <price>$4.50</price> |
<description>Thick slices made from our homemade sourdough bread</description> | <description>Thick slices made from our homemade sourdough bread</description> |
<calories>600</calories> | <calories>600</calories> |
</food> | </food> |
<food> | <food> |
<name>Homestyle Breakfast</name> | <name>Homestyle Breakfast</name> |
<price>$6.95</price> | <price>$6.95</price> |
<description>Two eggs, bacon or sausage, toast, and our ever-popular hash browns</description> | <description>Two eggs, bacon or sausage, toast, and our ever-popular hash browns</description> |
<calories>950</calories> | <calories>950</calories> |
</food> | </food> |
</breakfast_menu> | </breakfast_menu> |
</code> | </code> |
<?xml version="1.0" encoding="UTF-8"?> | <?xml version="1.0" encoding="UTF-8"?> |
<html xsl:version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> | <html xsl:version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> |
<body style="font-family:Arial;font-size:12pt;background-color:#EEEEEE"> | <body style="font-family:Arial;font-size:12pt;background-color:#EEEEEE"> |
<h1>MENU</h1> | <h1>MENU</h1> |
<xsl:for-each select="breakfast_menu/food"> | <xsl:for-each select="breakfast_menu/food"> |
<div style="background-color:teal;color:white;padding:4px"> | <div style="background-color:teal;color:white;padding:4px"> |
<span style="font-weight:bold"><xsl:value-of select="name"/> - </span> | <span style="font-weight:bold"><xsl:value-of select="name"/> - </span> |
<xsl:value-of select="price"/> | <xsl:value-of select="price"/> |
</div> | </div> |
<div style="margin-left:20px;margin-bottom:1em;font-size:10pt"> | <div style="margin-left:20px;margin-bottom:1em;font-size:10pt"> |
<p> | <p> |
<xsl:value-of select="description"/> | <xsl:value-of select="description"/> |
<span style="font-style:italic"> (<xsl:value-of select="calories"/> calories per serving)</span> | <span style="font-style:italic"> (<xsl:value-of select="calories"/> calories per serving)</span> |
</p> | </p> |
</div> | </div> |
</xsl:for-each> | </xsl:for-each> |
</body> | </body> |
</html> | </html> |
</code> | </code> |
Créer ses fichiers dans un dossier « menu », le fichier xml se nomme menu.xml et le fichier xsl menu.xsl | Créer ses fichiers dans un dossier « menu », le fichier xml se nomme menu.xml et le fichier xsl menu.xsl |
* **Exécuter le fichier xml dans un navigateur, observer la mise en forme** | * **Exécuter le fichier xml dans un navigateur, observer la mise en forme** |
| * Dans le fichier XML : |
| * repérer la ligne de définition du fichier XSL à utiliser |
| * faire l'arborescence des balises du fichier |
| * Dans le fichier XSL : |
| * repérer les balises xsl et expliquez-les |
| |
Créer le fichier biblio.xsl sur le même modèle et appliquer sa mise en forme à votre fichier biblio.xml | Créer le fichier biblio.xsl sur le même modèle et appliquer sa mise en forme à votre fichier biblio.xml |
| |
__Quelques ressources :__ | __Quelques ressources :__ |
* https://www.lehtml.com/xml/xml_xsl.html | |
* https://www.w3schools.com/xml/xsl_intro.asp | * https://www.w3schools.com/xml/xsl_intro.asp |
| * https://fabien-torre.fr/Enseignement/Cours/XML/xslt.php |
| * https://fileinfobase.com/fr/extension/xsl |
| |
| |