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.
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 :
... 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
Modifié par Heriquet (17 Feb 2006 - 08:41)
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 :
<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>
On aura vite compris qu'il s'agit d'un fichier contenant les traductions de certaines parties de pages web.
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 :
<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
Modifié par Heriquet (17 Feb 2006 - 08:41)