<xsl:apply-imports> | |
Permet d'appliquer tout modèle remplacé dans le nœud actuel. Il est comparable à la méthode super() dans Java. | |
Catégorie | |
Instruction |
|
Attributs obligatoires | |
Aucun. |
|
Attributs facultatifs | |
Aucun. |
|
Contenu | |
Aucun. <xsl:apply-imports> représente un élément vide. |
|
Apparaît dans | |
<xsl:apply-imports> apparaît dans un modèle. |
|
Défini dans | |
XSLT section 5.6, Remplacement des règles de modèle. |
|
Exemple | |
Le court fichier XML suivant illustre <xsl:apply-imports> : <?xml version="1.0"?> <test> <p>This is a test XML document used by several of our sample stylesheets.</p> <question> <text>When completed, the Eiffel Tower was the tallest building in the world.</text> <true correct="yes">You're correct! The Eiffel Tower was the world's tallest building until 1930.</true> <false>No, the Eiffel Tower was the world's tallest building for over 30 years.</false> </question> <question> <text>New York's Empire State Building knocked the Eiffel Tower from its pedestal.</text> <true>No, that's not correct.</true> <false correct="yes">Correct! New York's Chrysler Building, completed in 1930, became the world's tallest.</false> </question> </test> La feuille de style importée est la suivante : <?xml version="1.0"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:output method="html"/> <xsl:template match="/"> <html> <body> <xsl:for-each select="//text|//true|//false"> <p> <xsl:apply-templates select="."/> </p> </xsl:for-each> </body> </html> </xsl:template> <xsl:template match="text"> <xsl:text>True or False: </xsl:text><xsl:value-of select="."/> </xsl:template> <xsl:template match="true|false"> <b><xsl:value-of select="name()"/>:</b> <br/> <xsl:value-of select="."/> </xsl:template> </xsl:stylesheet> Ce modèle permet le formatage de base des éléments <true> et <false>, comme illustré à la Figure A-1. Document généré par un formatage de base La feuille de style suivante permet d'illustrer <xsl:apply-imports> alors qu'elle importe l'autre feuille de style : <?xml version="1.0"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:import href="imported.xsl"/> <xsl:output method="html"/> <xsl:template match="/"> <html> <head> <title>A Brief Test</title> <style> <xsl:comment> p.question {font-size: 125%; font-weight: bold} p.right {color: green} p.wrong {color: red} </xsl:comment> </style> </head> <body> <h1>A Brief Test</h1> <xsl:for-each select="//question"> <table border="1"> <xsl:apply-templates select="text"/> <xsl:apply-templates select="true|false"/> </table> <br/> </xsl:for-each> </body> </html> </xsl:template> <xsl:template match="text"> <tr bgcolor="lightslategray"> <td> <p class="question"> <xsl:apply-imports/> </p> </td> </tr> </xsl:template> <xsl:template match="true|false"> <tr> <td> <xsl:choose> <xsl:when test="@correct='yes'"> <p class="right"> <xsl:apply-imports/> </p> </xsl:when> <xsl:otherwise> <p class="wrong"> <xsl:apply-imports/> </p> </xsl:otherwise> </xsl:choose> </td> </tr> </xsl:template> </xsl:stylesheet> Utiliser <xsl:apply-imports> permet de compléter le comportement des modèles importés. La feuille de style produit le document suivant : <html> <head> <META http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>A Brief Test</title> <style> <!-- p.question {font-size: 125%; font-weight: bold} p.right {color: green} p.wrong {color: red} --> </style> </head> <body> <h1>A Brief Test</h1> <table border="1"> <tr bgcolor="lightslategray"> <td> <p class="question">True or False: When completed, the Eiffel Tower was the tallest building in the world.</p> </td> </tr> <tr> <td> <p class="right"> <b>true:</b> <br>You're correct! The Eiffel Tower was the world's tallest building until 1930.</p> </td> </tr> <tr> <td> <p class="wrong"> <b>false:</b> <br>No, the Eiffel Tower was the world's tallest building for over 30 years.</p> </td> </tr> </table> <br> <table border="1"> <tr bgcolor="lightslategray"> <td> <p class="question">True or False: New York's Empire State Building knocked the Eiffel Tower from its pedestal.</p> </td> </tr> <tr> <td> <p class="wrong"> <b>true:</b> <br>No, that's not correct.</p> </td> </tr> <tr> <td> <p class="right"> <b>false:</b> <br>Correct! New York's Chrysler Building, completed in 1930, became the world's tallest.</p> </td> </tr> </table> <br> </body> </html> Une fois affichée, la feuille de style ressemble à laFigure A-2. Document généré avec <xsl:apply-imports> |