Bonjour à tous,

J'ai le problème suivant en XPath:

J'ai le document atlas.xml suivant:

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
<?xml version="1.0" encoding="ISO-8859-1"?> 
<atlas> 
  <pays n="p2" population="82" continent="c1"> 
    <nom>Allemagne</nom> 
    <langue>Allemand</langue> 
	   <frontiere pays="p1"/> 
  </pays> 
  <pays n="p1" population="60" continent="c1" > 
    <nom>France</nom> 
    <langue pourcentage="100">Français</langue> 
    <langue pourcentage="1">Corse</langue> 
    <frontiere pays="p2"/> 
    <frontiere pays="p3"/> 
  </pays> 
  <pays n="p3" population="40" continent="c1"> 
    <nom>Espagne</nom> 
    <langue pourcentage="74">Espagnol</langue> 
    <langue pourcentage="17">Catalan</langue> 
    <langue pourcentage="7">Galicien</langue> 
    <frontiere pays="p1"/> 
  </pays>  
  <pays n="p4" population="76" continent="c2"> 
    <nom>Egypte</nom> 
    <langue>Arabe</langue> 
  </pays> 
   <pays n="p5" population="1200" continent="c3"> 
    <nom>Chine</nom> 
    <langue>Chinois</langue> 
  </pays> 
 
  <continent n="c1" nom="Europe" superficie="10"/> 
  <continent n="c2" nom="Afrique" superficie="30"/> 
   <continent n="c3" nom="Asie" superficie="42"/> 
 
 
  <mer n="m1" nom="Mer Mediterranee" profondeur="5120"> 
    <situation pays="p1"/> <situation pays="p3"/> <situation pays="p4"/> 
  </mer> 
 
  <montagne n="M1" nom="Alpes" altitude="4810"> 
    <situation pays="p1"/> <situation pays="p2"/> 
  </montagne> 
    <montagne n="M2" nom="Cevennes" altitude="1700"> 
    <situation pays="p1"/> 
  </montagne> 
</atlas>

C'est un document qui donne pour chaque pays le nom, les langues parlées, la frontière(avec les pays constituant cette frontière),
Chaque élément continent du document a un attribut n (c'est à cet attribut que correspond l'attribut continent de l'élément pays), et aussi un attribut nom.
Je voudrais écrire en XPath les langues parlées dans tous les pays dont le continent n'a pas pour nom "Europe".


Le output que je voudrais avoir est:

Arabe
Chinois






Pour résoudre mon problème, j'ai d'abord cherché à écrire en Xpath les continents dont le nom n'est pas "Europe".L'expression XPath que j'ai trouvée est:
//continent[not(@nom="Europe")]/@n.Cette expression me donne un ensemble A d'attributs(composé, dans mon cas, de c1 et de c2). Maintenant,pour obtenir ce que cherche, c'est-à-dire les langues parlées dans tous les pays dont le continent n'a pas pour nom "Europe", j'ai pensé à une expression Xpath du genre //pays[@continent in A]/langue/text(). Mais je bute depuis sur la façon de traduire en XPath le prédicat @continent in .

Quelqu'un pourrait-il m'aider ?

Merci d'avance