IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

XSL/XSLT/XPATH XML Discussion :

appartenance/exclusion d'un ensemble


Sujet :

XSL/XSLT/XPATH XML

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 7
    Par défaut appartenance/exclusion d'un ensemble
    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

  2. #2
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 582
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 582
    Par défaut
    L'opérateur = appliqué à des ensemble signifie :
    vrai si et seulement si, en prenant l'ensemble A à gauche et l'ensemble B à droite, il existe un couple (a, b) dont a appartient à A et b appartient à B, tel que a et b sont égaux.

    Bref, @continent étant un ensemble à un seul élément, c'est exactement la même chose que l'opérateur in que tu cherches.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

Discussions similaires

  1. [XSLT 1.0] Tester l'appartenance à un ensemble
    Par liouan dans le forum XSL/XSLT/XPATH
    Réponses: 7
    Dernier message: 23/09/2011, 20h01
  2. Relation de multi-appartenance exclusive
    Par ZeGuizmo dans le forum Schéma
    Réponses: 4
    Dernier message: 27/05/2010, 09h57
  3. test d'appartenance à un ensemble
    Par Ogrim dans le forum MATLAB
    Réponses: 4
    Dernier message: 20/04/2010, 11h47
  4. Tester l'appartenance à un ensemble
    Par Tchaill39 dans le forum Delphi
    Réponses: 1
    Dernier message: 11/04/2007, 08h45
  5. Réponses: 3
    Dernier message: 12/06/2002, 19h03

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo