|
Re: Problème d'utilisation de l'instruction <xsl:template >: msg#00221text.xml.french.tech
> Bonjour tout le monde, bonjour > > Je crois que j'ai un sérieux problème d'utilisation des fonctions > <xsl:template match="Pattern"> et <xsl:apply-templates>!!! je crois que le problème est ailleurs :) (Par ailleurs, la spécification est bien faite, elle doit être lue...) Vous produisez une chaine de caractères via <xsl:apply-templates select="DATE"/> et un element racine via <p><b>.... donc vous aurez : <?xml version="1.0"?> 05-12-2000<p xmlns:fo ... or ce n'est pas la définition d'un document bien formé : http://www.w3.org/TR/2004/REC-xml-20040204/#sec-well-formed quelques remarques : - votre xml n'est pas valide (sémantiquement) ! il y a une incohérence entre la DTD et le contenu - votre xsl ne l'est pas non plus ! vous définissez un encodage UTF-8 et utilisz des accents é - vous définissez 2 fois la même règle. <xsl:template match="FILM"> C'est parfaitement légal, mais il n'y a pas d'élément discriminant sur lequel le processeur peut se baser, donc il prendre le dernier. Le premier ne sera pas appelé. cordialement -- XPath free testing software : http://lantern.sourceforge.net Frédéric Laurent http://www.opikanoba.org > Ou j'ai mal compris son utilisation ou tout simplement je ne sais pas > l'utiliser. > > Par exemple, j'ai un document XML suivant: > > <?xml version="1.0" encoding="UTF-8"?> > <!DOCTYPE FILM [ > <!ELEMENT FILM (TITRE,AUTEUR,ANNEE,RESUME)> > <!ELEMENT TITRE (#PCDATA)> > <!ELEMENT AUTEUR (#PCDATA)> > <!ELEMENT DATE (#PCDATA)> > <!ELEMENT RESUME (#PCDATA)> > ]> > <FILM> > <TITRE>Titanic</TITRE> > <AUTEUR>James CAMEROON</AUTEUR> > <DATE>05-12-2000</DATE> > <RESUME>Film relatant l'accident du plus grand paquebot du monde > TITANIC</RESUME> > </FILM> > Et j'ai écrit cette feuille de style tout simple pour extraire les données > textuelles de l'arbre XML ci-dessus: > > <?xml version="1.0" encoding="UTF-8"?> > <xsl:stylesheet version="1.0" > xmlns:xsl="http://www.w3.org/1999/XSL/Transform" > xmlns:fo="http://www.w3.org/1999/XSL/Format"> > > <xsl:template match="FILM"> > <p> > <h1><i><xsl:value-of select="TITRE"/></i></h1> > </p> > <i><xsl:value-of select="ANNEE"/></i> > <p> > <xsl:value-of select="AUTEUR"/> > </p> > <p> > <h3>Résumé:<xsl:value-of select="RESUME"/></h3> > </p> > </xsl:template> > <xsl:template match="FILM"> > <xsl:apply-templates select="DATE"/> > <!--Date au format dd/mm/yyyy--> > <p> > <b>Le film est sorti le <xsl:value-of > select="concat(substring(DATE,1,2), > substring(DATE,2.5,4.5),substring(7,10))"/></b> > </p> > </xsl:template> > </xsl:stylesheet> > > > > Le problème est que chaque fois que je lance les transformations, le > processeur me sort l'erreur: " > Node of this type cannot be added." (le noeud ne peut être ajouté dans > l'arbre résultat...). > > Pouvez-vous me donner des conseils d'utilisation de <xsl:template> et > <xsl:apply-templates>? > > Comment je peux les utiliser pour avoir le résultat correct dans ma > feuille de style ci-haut? > > Bonne journée. > > Oscar N. > > |
|
| <Prev in Thread] | Current Thread | [Next in Thread> |
|---|---|---|
| Previous by Date: | Problème d'utilisation de l'instruction <xsl:template>: 00221, Oscar NIYONKURU |
|---|---|
| Next by Date: | Re: Problème d'utilisation de l'instruction <xsl:template >: 00221, Oscar NIYONKURU |
| Previous by Thread: | Problème d'utilisation de l'instruction <xsl:template>i: 00221, Oscar NIYONKURU |
| Next by Thread: | Re: Problème d'utilisation de l'instruction <xsl:template >: 00221, Oscar NIYONKURU |
| Indexes: | [Date] [Thread] [Top] [All Lists] |
| News | FAQ | advertise |