[XSL] pleins de petites questions simples
d ailleurs il serait interessant je pense de mettre les reponses ds la FAQ:
1/ quelle est la difference entre:
Code:
<xsl:for-each select="*">
et
Code:
<xsl:for-each select="node()">
???
2/ comment savoir si un node est de type text()??
3/ Comment savoir si mon text() est avant ou apres les autres noeuds?
Question plus perso maintenant
4/J ai un xsl tout simple dans lequel j ai ecrit
Code:
1 2 3
| <xsl:template match="/">
<xsl:copy-of select="//body"/>
</xsl:template> |
qui ne marche pas (ne renvoit rien pourtant g bien un body!)... est ce normal?
:oops:
Re: [XSL] pleins de petites questions simples
Citation:
Envoyé par tiscars
1/ quelle est la difference entre:
Code:
<xsl:for-each select="*">
et
Code:
<xsl:for-each select="node()">
???
Il n'y en a pas * est le raccourci de node()
Citation:
Envoyé par tiscars
2/ comment savoir si un node est de type text()??
Hum je crains que tu comprenne mal les types :?
<noeuds/> noeuds est un noeud de type node() vide
<noeuds>ici</noeuds> noeuds est un noeud de type node() qui contient le noeud ici de type text()
Citation:
Envoyé par tiscars
3/ Comment savoir si mon text() est avant ou apres les autres noeuds?
Avant quels autres noeuds ? les autres noeuds text ou les autres noeuds de type node() qui peuvent etre dans le node() parent ?
Citation:
Envoyé par tiscars
Question plus perso maintenant
4/J ai un xsl tout simple dans lequel j ai ecrit
Code:
1 2 3
| <xsl:template match="/">
<xsl:copy-of select="//body"/>
</xsl:template> |
qui ne marche pas (ne renvoit rien pourtant g bien un body!)... est ce normal?
Ca marche tres bien chez moi en tout cas.Peut être ton body est-il en majuscule ?
Re: [XSL] pleins de petites questions simples
Bonjour,
quelques précisions :
Citation:
Envoyé par tiscars
1/ quelle est la difference entre:
Code:
<xsl:for-each select="*">
et
Code:
<xsl:for-each select="node()">
???
La première expression sélectionne les éléments fils du noeud courant ; l'étoile peut également servir à sélectionner tous les attributs d'un élément, en spécifiant l'axe attribute (ou @ en notation abrégée) :
Code:
<xsl:for-each select="attribute::*">
La deuxième expression sélectionne tous les noeuds fils du noeud courant, quel que soit leur type
Citation:
Envoyé par tiscars
2/ comment savoir si un node est de type text()??
3/ Comment savoir si mon text() est avant ou apres les autres noeuds?
En principe, il n'est pas nécessaire de se poser ces questions quand on rédige du code XSLT, ou alors c'est qu'on s'y est mal pris en créant ses templates... :wink:
Citation:
Envoyé par tiscars
Question plus perso maintenant
4/J ai un xsl tout simple dans lequel j ai ecrit
Code:
1 2 3
| <xsl:template match="/">
<xsl:copy-of select="//body"/>
</xsl:template> |
qui ne marche pas (ne renvoit rien pourtant g bien un body!)... est ce normal?
S'il s'agit d'un fichier XHTML, il y a de fortes chances que tous tes éléments appartiennent à l'espace de nom XHTML ; en d'autres termes, tu dois avoir un espace de nom par défaut dans ta balise HTML comme ceci :
Code:
<html xmlns="http://www.w3.org/1999/xhtml">
Toutes tes requêtes XPath dans ton code XSLT doivent tenir compte de cet espace de nom.