![]() |
Automatisez la gestion de vos pages HTML... grâce à XML ! |
XML permet d'avoir des fichiers "propres", dans lesquels l'information est balisée en fonction de sa nature et non pas de sa présentation finale. Par exemple dans une bibliographie :
Si votre fichier est "régulier" (c'est-à-dire de structure simple et répétitive comme l'est une bibliographie, un catalogue, un annuaire, un tableau financier, etc.) :
Un exemple ? Voir notre Bibliographie XML en XML.
Si votre fichier est plus du type "document" que du type "fichier de données", comme c'est le cas par exemple pour un article, vous pouvez préférer continuer à saisir comme par le passé le corps de ce document à l'aide d'un éditeur HTML classique. Mais ce que HTML ne vous donnera pas, c'est la possibilité d'automatiser les tâches répétitives liées à la fabrication de votre document, comme :
Toutes ces tâches ne sont pas automatisables pour un fichier HTML. Elles le sont pour un fichier XML grâce au langage de transformation XSLT.
Vous avez donc intérêt à transformer votre document HTML en XML pour bénéficier de ces alléchantes possibilités.
Est-ce possible ? Oui. Est-ce difficile ? Non, et le présent article se propose de vous le démontrer.
Prenez au hasard un fichier HTML (anglais de préférence, la suite vous montrera pourquoi). Ajoutez-lui en tête la processing instruction suivante <?xml version="1.0" ?> et changez son extension .html en .xml. Puis essayez de le lire sous Internet Explorer 5. Que se passera-t-il ?
Eh bien, selon toute probabilité, vous obtiendrez un message d'erreur, vous indiquant que telle ou telle partie du document n'est pas "bien formée" au sens XML : telle balise ne sera pas fermée, tel attribut ne sera pas entre guillemets...
Si vous aviez la patience de corriger une à une toutes les erreurs signalées par MSIE5, vous finiriez par avoir un document bien formé au sens XML que MSIE5 vous afficherait alors avec sa feuille de style par défaut, sous la forme d'une arborescence dépliable et repliable.
Comme vous êtes paresseux, vous vous demandez certainement si ce travail ne pourrait pas être fait par un logiciel. Et vous avez bien raison, puisqu'un tel logiciel existe et s'appelle HTML Tidy.
Le fichier .BAT aura l'allure suivante :
Note. Tidy est aussi inclus dans l'éditeur HTML HTML-Kit, développé également par Dave Raggett.
Tidy ne transforme pas le contenu des éventuels éléments <SCRIPT>, lesquels peuvent comporter des caractères qu'XML réprouve, comme le "<". Il est donc possible que votre fichier résultat soit mal formé pour cette raison. Vous devrez alors soit effacer le script incriminé soit déclarer son contenu comme section CDATA (qui ne sera alors pas analysée par le "parseur" ou analyseur grammatical).
Si, comme nous l'avons suggéré, votre fichier HTML de départ était en anglais, le résultat produit par Tidy sera alors d'emblée du XML bien formé que MSIE5 vous affichera immédiatement avec sa feuille de style par défaut, sous forme d'une arborescence dépliable et repliable.
Si d'aventure vous rétablissez l'extension .HTML vous aurez la satisfaction de voir que votre butineur favori est toujours capable de lire votre fichier et de lui donner exactement la même présentation qu'autrefois. Vous avez donc réalisé du premier coup du HTML XMLisé !
Vous pourrez aussi vous amuser à visualiser ce fichier en tant que fichier XML en y ajoutant la processing instruction suivante :
et en créant la feuille de style XSL élémentaire (displayidentical.msxsl) suivante.
<!-- encoding="ISO-8859-1" n'est en fait pas nécessaire pour un fichier en anglais -->
<xsl:stylesheet xmlns:xsl="http://www.w3.org/TR/WD-xsl">
<!-- Se positionner sur la racine du document -->
<xsl:template match="/">
<xsl:apply-templates />
</xsl:template>
<!-- Reproduire le document à l'identique -->
<xsl:template match="@* | * | text()">
<xsl:copy>
<xsl:apply-templates select="@* | * | text()"/>
<!-- Attention : ne pas couper la ligne suivante pour ne pas
introduire d'espaces parasites -->
</xsl:copy></xsl:template>
</xsl:stylesheet>
Puisque vous êtes francophone, il y a gros à parler que les fichier HTML que vous souhaitez transformer sont en français en non pas en anglais. Dans ce cas MSIE5 risque encore de vous renvoyer un message d'erreur lorsque vous essaierez de lire le fichier XML produit par Tidy. La raison en est que notre belle orthographe française comporte des letttres accentuées qui ne font pas partie du noyau ASCII de base. Deux cas sont possibles :
Mais ceci est une autre histoire..
Retour à la page d'accueil.