Bonjour,
je viens d'apprendre comment écrire une requête XPATH. J'ai un petit document XML, le but de la requête est celui-ci:
(je mets le document XML en premier puis vient la question…)Sélectionner le deuxième nœud "personne" dont le pays de domiciliation est la France .
J'ai trouvé un requête qui fonctionne:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58 <?xml version="1.0" encoding="UTF-8" standalone="yes" ?> <repertoire> <!-- John DOE --> <personne sexe="masculin"> <nom>DOE</nom> <prenom>John</prenom> <adresse> <numero>7</numero> <voie type="impasse">impasse du chemin</voie> <codePostal>75015</codePostal> <ville>PARIS</ville> <pays>FRANCE</pays> </adresse> <telephones> <telephone type="fixe">01 02 03 04 05</telephone> <telephone type="portable">06 07 08 09 10</telephone> </telephones> <emails> <email type="personnel">john.doe@wanadoo.fr</email> <email type="professionnel">john.doe@societe.com</email> </emails> </personne> <!-- Marie POPPINS --> <personne sexe="feminin"> <nom>POPPINS</nom> <prenom>Marie</prenom> <adresse> <numero>28</numero> <voie type="avenue">avenue de la république</voie> <codePostal>13005</codePostal> <ville>MARSEILLE</ville> <pays>FRANCE</pays> </adresse> <telephones> <telephone type="professionnel">04 05 06 07 08</telephone> </telephones> <emails> <email type="professionnel">contact@poppins.fr</email> </emails> </personne> <!-- Batte MAN --> <personne sexe="masculin"> <nom>MAN</nom> <prenom>Batte</prenom> <adresse> <numero>24</numero> <voie type="avenue">impasse des héros</voie> <codePostal>11004</codePostal> <ville>GOTHAM CITY</ville> <pays>USA</pays> </adresse> <telephones> <telephone type="professionnel">01 03 05 07 09</telephone> </telephones> </personne> </repertoire>
J'en ai essayé une autre:
Code : Sélectionner tout - Visualiser dans une fenêtre à part /repertoire/personne[adresse/pays='FRANCE'][position()=2]
Pourquoi cette deuxième requête ne fonctionne-t-elle pas ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part /repertoire/personne/adresse[pays='FRANCE']/parent::personne[position()=2]
Avec un autre exercice, dont le but était:
J'avais fait comme ceci:Sélectionner le nœud "personne" correspondant à l'individu ayant au moins 2 numéros de téléphone.
Ça avait l'air de marcher, le résultat était celui attendu, mais je ne suis pas certain que ce soit juste…
Code : Sélectionner tout - Visualiser dans une fenêtre à part /child::repertoire/child::personne/child::telephones[count(telephone)>=2]/parent::personne
Merci à vous.
Partager