De retour sur les ondes

Les quinze jours qui viennent de s’écouler n’ont pas été faciles mais là ça va plutôt mieux. Je déménage à Fontainebleau dimanche ou lundi (suivant la disponibilité de l’appart) et là me revoilà au décorticage du flux H.264.

Un ptit bout de XSLT

Supposons que j’ai des fichiers du genre

<chapter id="">   <title></title>   <abstract></abstract>   <sect1 id=""></sect1>   <sect1 id=""></sect1>   ... </chapter>

et que je veuille le séparer en plusieurs petits fichiers indépendants avec :

  • un fichier de chapitre contenant le titre et le résumé
  • un fichier par sect1

Donc, un petit script XSLT qui fait ça très bien (enfin, suffisemment bien pour mes low expectations) :

<?xml version="1.0" encoding="iso-8859-1"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">   <xsl:output method="xml"/>   <xsl:template match="abstract">     <xsl:copy-of select="@*|current()" />   </xsl:template>   <xsl:template match="sect1">     <xsl:variable name="filename">       <xsl:value-of select="concat(@id, '.xml')" />     </xsl:variable>    <xsl:document href="{$filename}">      <xsl:copy-of select="@*|current()" />      </xsl:document>   </xsl:template>
  <xsl:template match="/chapter/title">     <xsl:copy-of select="@*|current()"/>   </xsl:template>   <xsl:template match="/chapter">     <xsl:variable name="chapterfilename">       <xsl:value-of select="concat(@id, '.xml')" />     </xsl:variable>     <xsl:document href="{$chapterfilename}">       <xsl:apply-templates />     </xsl:document>   </xsl:template> </xsl:stylesheet>

Probablement très largement améliorable ; de plus il est nécessaire que les différentes sections aient chacune un attribut id pour pouvoir générer le nom de fichier. Ya probablement moyen de faire plus propre, mais, bon.