Accueil
 chercher             Plan du site             Info (English version) 
L'histoire de XML s'écrit en ce moment même. XMLfr vous aide à la suivre et à en dégager les tendances.Les listes de discussions XMLfr sont à votre disposition pour réagir sur nos articles ou simplement poser une question.Si vous ètes passionnée(e) par XML, pourquoi ne pas en faire votre métier ?XMLfr n'est heureusement pas le seul site où l'on parle de XML. Découvrez les autres grâce à XMLfr et à l'ODP.Les partenaires grâce auxquels XMLfr peut se développer.Pour tout savoir sur XMLfr.XMLfr sans fil, c'est possible !Pour ceux qui veulent vraiment en savoir plus sur XML.L'index du site.
 Si vous vous posez une question, vous n'êtes peut-être pas le premier...Les traductions en français des bibles XML.Ces articles sont des références dans leur domaine.Tout ce qu'il faut savoir pour démarrer sur un sujet XML...


<xsl:value-of select="text()" />

Pourquoi  XSLT ne m'affiche t'il rien quand j'écris <xsl:value-of select="text()" />?

Eric van der Vlist, Dyomedea (vdv@dyomedea.com).
vendredi 30 mars 2001

J'ai le fichier XMLsuivant:

<?xml version="1.0" encoding="iso-8859-1"?> 
<toto>
  <machin>
    <truc>du truc</truc>
    du machin mais pas du truc
  </machin>
</toto>

Et souhaite afficher la chaîne "du machin mais pas du truc", mais le template:

<xsl:template match="machin">
  <xsl:value-of select="text()"/>
</xsl:template>

N'affiche rien.

Il s'agit d'un piège de l'instruction XSLT xsl:value ainsi définie dans la recommandation:

"L'élément xsl:value-of est instancié pour créer un noeud textuel de l'arbre résultant. L'attribut obligatoire select est une expression ; cette expression est évaluée et l'objet résultant est converti en une chaîne de caractères comme l'aurait fait la fonction string."

La fonction string étant définie par XPath de la manière suivante:

"Un ensemble de noeuds est converti en chaîne de caractères en retournant la valeur textuelle du premier noeud de l'ensemble dans l'ordre du document."

Dans notre cas, text() désigne l'ensemble des noeuds de type "texte" contenus dans l'élément "machin" et le premier de ces noeuds dans l'ordre du document est constitué par le saut à la ligne et la tabulation situés entre la fin de la balise "<machin>" et le début de la balise "<truc>".

Pour afficher l'ensemble des noeuds texte, il faut donc utiliser une instruction telle que "copy-of" qui agit sur des ensembles de noeuds:

<xsl:template match="machin">
  <xsl:copy-of select="text()" />
</xsl:template>
Patrice Pillot: "[xml-tech] Re: Problème avec XPath"Eric van der Vlist: "[xml-tech] Re: Problème avec XPath"

Copyright 2001, Eric van der Vlist.


 

Mots clés.



L'histoire de XML s'écrit en ce moment même. XMLfr vous aide à la suivre et à en dégager les tendances.


Les documents publiés sur ce site le sont sous licence "Open Content"
Conception graphique
  l.henriot  

Conception, réalisation et hébergement
Questions ou commentaires
  redacteurs@xmlfr.org