Re: Convertir un sous-arbre XML en texte

Stephane Bortzmeyer <[email protected]> Tue, 26 Jun 2007 22:26:07 +0200
Newsgroups gmane.text.xml.french.tech
Message-ID <[email protected]>
On Tue, Jun 26, 2007 at 01:17:02PM -0400,
 Lionel Villard <[email protected]> wrote 
 a message of 83 lines which said:

> Implanter la fonction serialize directement en XSLT devrait etre
> faisable. Pour les elements, j'ecrirais la template suivante:

Merci beaucoup pour la piste. Ça semble marcher. Voici mon programme :

  <xsl:template match="bar">
    <unmachin>
      <xsl:apply-templates mode="serialize"/>
    </unmachin>
  </xsl:template>

  <xsl:template match="*" mode="serialize">
    <xsl:text>&lt;</xsl:text>
    <xsl:value-of select="local-name(.)"/>
    <xsl:apply-templates mode="serialize" select="@*"/>  
    <xsl:text>&gt;</xsl:text>
    <xsl:apply-templates mode="serialize"/>  
    <xsl:text>&lt;</xsl:text>
    <xsl:value-of select="local-name(.)"/>
    <xsl:text>/&gt;</xsl:text>
    <!-- TODO: collapse the start and end tags if the element has no
    content -->
  </xsl:template>

  <xsl:template match="@*" mode="serialize">
    <xsl:text> </xsl:text>
    <xsl:value-of select="local-name(.)"/>
    <xsl:text>="</xsl:text>
    <xsl:value-of select="."/>
    <xsl:text>"</xsl:text>
  </xsl:template>