Bonjour,
Etant un peu expérimenté mais pas expert de XPath, je me prend la tête sur une petite chose : la fameuse formule magique qui va me permettre d'obtenir ce qu'il me faut de mon fichier XML.
Le voici :
On aura vite compris qu'il s'agit d'un fichier contenant les traductions de certaines parties de pages web.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 <texts> <text id="mnuCalendar"> <language lang="FR">Calendrier</language> <language lang="NL">Kalender</language> </text> <text id="mnuLinks"> <language lang="FR">Liens</language> <language lang="NL">Links</language> </text> </texts>
Le contexte est le PHP mais ca importe peu ici. J'ai fait une fonction qui lit ce fichier et retourne un tableau avec comme clé ceci : <text id="mnuLinks"> et comme valeur, le contenu du noeud "language" correspondant à la langue choisie.
Je voudrais récupérer par exemple le fichier suivant :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 <texts> <text id="mnuCalendar"> <language lang="FR">Calendrier</language> </text> <text id="mnuLinks"> <language lang="FR">Liens</language> </text> </texts>
... si l'utilisateur est francophone.
Ce qui m'occupe est donc de pouvoir récupérer tous les noeuds <text> et le noeud qu'ils contiennent dont l'attribut "lang" est égal à true.
J'ai testé sans succès l'expression " /text/language[@lang="FR"] " mais visiblement c'est pas ca...
J'ai aussi essayé avec le prédicat "descendant-or-self" mais j'ai du mal m'y prendre car j'ai une forte impression que tous les éléments ci-dessus sont susceptibles de ne pas être loins de la réponse.
Quelqu'un aurait-il une idée ?
Merci d'avance !
Heriquet
Partager