Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1000 connectés 

  FORUM HardWare.fr
  Programmation
  XML/XSL

  [xsl] sélection de noeuds selon leurs attrituts [Résolu]

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[xsl] sélection de noeuds selon leurs attrituts [Résolu]

n°1505925
cyplp
Posté le 22-01-2007 à 15:21:01  profilanswer
 

Bonjour,
 
J'ai un fichier xml sous la forme suivante :

Code :
  1. <racine>
  2.          <texte lang="fr" titre="titre en fr"> texte en français </texte>
  3.          <texte lang="en" titre="titre en en"> texte en anglais </texte>
  4.          <texte lang="es" titre="titre en es"> texte en espagnol </texte>
  5. </racine>


 
ce que je cherche a faire : c'est sélectionner un <texte> en fonction de sa langue grâce a une variable passée en paramêtres.
 
voila a quoi j'ai pensé :

Code :
  1. <xsl:for-each select="texte">  <!-- ce qui manquait -->
  2.          <xsl:choose>
  3.                <xsl:when test="@lang=$lang">
  4.                             <xsl:value-of select="@titre" />
  5.                                ...
  6.                </xsl:when>
  7.          </xsl:choose>
  8.        </xsl:for-each>


 
ou la même chose avec un <xsl:if> mais cela ne marche pas : il me renvoie toujours le texte en français car c'est le premier...
 
je pense que je m'y prends mal mais je ne vois pas comment faire.
 
merci de votre aide


Message édité par cyplp le 22-01-2007 à 15:40:39

---------------
logiciels libres à Pau http://www.paulla.asso.fr
mood
Publicité
Posté le 22-01-2007 à 15:21:01  profilanswer
 

n°1505938
cyplp
Posté le 22-01-2007 à 15:39:14  profilanswer
 

j'ai trouvé...
il manquait simplement un for-each...


Message édité par cyplp le 22-01-2007 à 15:41:02
n°1505989
MagicBuzz
Posté le 22-01-2007 à 17:07:33  profilanswer
 

sinon :
 
<xsl:for-each select="texte[@lang=$lang]">
 
Ca t'évite de faire le if imbriqué qui est inutile.

n°1505993
cyplp
Posté le 22-01-2007 à 17:19:03  profilanswer
 

c'est vrai que c'est mieux

n°1506109
gizmo
Posté le 22-01-2007 à 23:21:48  profilanswer
 

Euh, ouais, enfin, si c'est juste pour ne récupérer qu'un seul element a chaque fois, un simple match sur l'attribut fait tout aussi bien l'affaire et est nettement moins lourd.

n°1506143
MagicBuzz
Posté le 23-01-2007 à 01:27:21  profilanswer
 

en effet, dans ce cas, suffit de bêtement :
 
<xsl:value-of select="texte[@lang=$lang]/@titre"/>

n°1506202
cyplp
Posté le 23-01-2007 à 10:04:42  profilanswer
 

merci j'ai encore simplifié mon code


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  XML/XSL

  [xsl] sélection de noeuds selon leurs attrituts [Résolu]

 

Sujets relatifs
[Resolu] jouer son au bout de t secondes[PHP & XMLReader] Ne passe pas dans les noeuds Attributs [Resolu]
[Résolu] [Visual Basic] Modifier et utiliser un composant MSFlexGrid[Résolu] [VBA] Comment lancer un .chm ?
[RESOLU] Recherche éditeur table SQL ultra basique[RESOLU]ouvrir un répertoire sélectionné et lister
[JAVA/JSP] Formulaire JSP/Servlet - Conservations de données [Resolu][résolu] Ajax et erreur de syntaxe
[Résolu] Comment envoyer un fichier sur un serveur (client ftp) 
Plus de sujets relatifs à : [xsl] sélection de noeuds selon leurs attrituts [Résolu]


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR