1. This site uses cookies. By continuing to use this site, you are agreeing to our use of cookies. Learn More.

Exercice XPATH

abdelouafiSep 17, 2016

    1. abdelouafi

      abdelouafi Administrator Staff Member

      Messages:
      267
      Likes Received:
      8
      Trophy Points:
      18
      Joined
      Sep 13, 2016

      Exemple problème XPATH :


      upload_2016-9-17_11-45-23.png

      žA l’aide des espaces de nommage nous pouvons différencier les balises <photo> en utilisant la notation <personne: photo> et <mariage: photo>

      žL’espace de nommage « personne » pourra être déclaré de la façon suivante :

      Code:
      <arbre xmlns: personne="uri">
      žL’URI de l’espace de nommage peut être fictive car elle n’est pas vérifiée, toute fois elle pointe généralement sur la grammaire de l’espace de nommage (DTD ou schéma XML).

      žEnsuite on pourra préfixer l’élément « photo » soit par « personne » ou
      « mariage », ce qui signifie la balise « photo » appartient à l’espace de …nommage.

      upload_2016-9-17_11-45-57.png

      Les namespaces –Syntaxe XPATH:


      ØLes espaces de nommage peuvent être déclarés dans le document XML à l’aide de l’attribut xmlns :

      Code:
      <Elément xmlns xmlns:Espace_de_nom Espace_de_nom = “[URI]“>
      
      ....
      
        </Elément>
      • La déclaration de l’espace de nom peut figurer dans tout élément du document XML, ou pour plus de clarté et de commodité dans l’élément racine
      • Les éléments appartenant à un espace de nom se distinguent des autres éléments par l’ajout d’un préfixe symbolisant cette singularité. Les préfixes se placent au sein de la balise XML avant le nom de l’élément et séparés par un « : »
      Code:
      <Espace_de_nom:Élément > [donnée] </Espace_de_nom:Élément>

      Exemple XPATH :



      Code:
      <personne: photo date_photo="14/04/2014">photo 1</personne: photo>
      Le nom du préfixe peut être constitué de lettres, caractères accentués, tirets (« _ ») ou de chiffres.

      žUn espace de nommage peut aussi figurer dans la DTD et en particulier dans la définition de l’attribut :
      ž
      Code:
      <!ELEMENT Espace_de_nom:[nom de l’élément] ([contenu de l’élément ou type])>
      
      <!ATTLIST Espace_de_nom:[nom de l’élément] xmlns:Espace_de_nom CDATA [options] “[URI]“>
      Soit par exemple:
      Code:
      <!ELEMENT personne: photo #PCDATA>
      
      <!ATTLIST personne: photo personne  xmlns: personne CDATA #IMPLIED “http://www.personne.com“>

      URL/URI:


      upload_2016-9-17_11-47-6.png

      • URI : Uniform Resource Identifier
      • URL : Uniform Resource Locator
      • URN : Uniform Resource Name

      1. Un URI est un identifiant qui permet de désigner sans ambiguïté un document ou plus généralement une ressource. Cet identifiant doit donc être unique de manière universelle.
      2. Une URL identifie un document en spécifiant un mécanisme pour le retrouver. Elle est composée d'un protocole suivi d'une adresse permettant de récupérer le document avec le protocole.
      Un URI ( Uniform Resource Identifier) est une chaîne de caractères identifiant une ressource. cet URI peut être :

      • soit un URL : Uniform Resource Locator
      • soit un URN : Universal Resource Name

      Les espaces de noms sont spécifiés par rapport à des URI.
      Un URI désigne un ressource ayant une identité sur le web (par exemple un fichier) .

      Un URL Uniform Resource Locator spécifie :

      • un protocole (http, ftp...)
      • une ressource téléchargeable

      Exemple :



      http://www.w3.org/TR/xpath/


      • Protocole
      • Adresse Internet
      • Chemin d'accès

      Exemple de code XPATH:


      arbre.xml:
      Code:
      <?xml version="1.0" encoding="UTF-8"?>
      
      <arbre >
          <personnes>
              <personne sexe="M" id="1">
                  <nom>BEKHTAOUI</nom>
                  <prenom>Ahmed</prenom>
                  <photo date_photo="14/04/1980">photo 1</photo>
                  <naissance date="1960" ville="OUJDA" />
                  <deces date="15/08/2010" ville="BERKANE" />
              </personne>
         
              <personne sexe="F" id="2">
             
                  <nom>MOKHLLISS</nom>
                  <prenom>Fatima</prenom>
                  <naissance date="12/02/1964" ville="NADOR" />
                  <deces date="" ville="" />
              </personne>
              <personne sexe="M" id="3">
                  <nom>BEKHTAOUI</nom>
                  <prenom>Omar</prenom>
                  <photo date_photo="14/04/1998">photo 1</photo>
                  <naissance date="15/09/1984" ville="OUJDA" />
                  <deces date="" ville="" />
              </personne>
              <personne sexe="F" id="4">
                  <nom>BEKHTAOUI</nom>
                  <prenom>Amina</prenom>
                  <photo date_photo="19/09/2000">photo 1</photo>
                  <naissance date="10/10/1987" ville="OUJDA" />
                  <deces date="" ville="" />
              </personne>
              <personne sexe="F" id="5">
                  <nom>GHAMMARTI</nom>
                  <prenom>Najlae</prenom>
                  <photo date_photo="22/04/2000">photo 1</photo>
                  <naissance date="11/11/1987" ville="OUJDA" />
                  <deces date="" ville="" />
              </personne>
              <personne sexe="M" id="6">
                  <nom>AHMADI</nom>
                  <prenom>Mostapha</prenom>
                  <photo date_photo="14/04/2002">photo 1</photo>
                  <naissance date="12/12/1986" ville="RABAT" />
                  <deces date="" ville="" />
              </personne>
              <personne sexe="M" id="7">
                  <nom>BEKHTAOUI</nom>
                  <prenom>Ayman</prenom>
                  <photo date_photo="14/04/2013">photo 1</photo>
                  <naissance date="01/01/2013" ville="ALHOCEIMA" />
                  <deces date="" ville="" />
             </personne>
                  <personne sexe="M" id="8">
                      <nom>AHMADI</nom>
                      <prenom>Chaimae</prenom>
                    <photo date_photo="14/04/2014">photo 1</photo>
                      <naissance date="01/012012" ville="OUJDA" />
                      <deces date="" ville="" />
                  </personne>
          </personnes>
                 <informations_marriage>
                      <info_marriage idHomme="1" idFemme="2" >
                          <date date_marriage="1981" date_divorcer="" />
                          <photo>photo mariage</photo>
                          <descendant id_des="" />
                      </info_marriage>
                           
      
              <info_marriage idHomme="3" idFemme="5" >
                  <date date_marriage="02/02/2009" date_divorcer="" />
                  <descendant id_des="7" />
              </info_marriage>
              <info_marriage idHomme="4" idFemme="6" >
                  <date date_marriage="03/03/2010" date_divorcer="" />
                  <descendant id_des="8" />
              </info_marriage>
          </informations_marriage>
      
      </arbre>
      -----
      fichier texte : exemple.txt:



      ******************* Exemples Simples***********************

      Code:
      arbre/personnes/node()
      /arbre/personnes/personne/nom
      //naissance/@date
      /arbre/personnes/personne/naissance[@date='1960']
      
      /arbre/personnes/personne[position()=last()]/naissance/@date
      /descendant-or-self::naissance[attribute::date='1960']
      /descendant-or-self::nissance/attribute::date
      /descendant-or-self::node()/attribute::ville
        substring(/arbre/personnes/personne[position()=1]/nom,1,2)
        substring(/arbre/personnes/personne[position()=2]/prenom,3,4)
        substring-before(/arbre/personnes/personne[position()=1]/nom,'K')
        number(count(/arbre/personnes/personne))
        starts-with(/arbre/personnes/personne[position()=1]/@sexe,'F')


      *********************Namespace*************************
      //photo
      //personne: photo
      //mariage: photo


      ---
      Le fichier namespaces.xml:
      Code:
      <arbre xmlns: personne="www.personne.com" xmlns:mariage="www.mariage.com">
          <personne: personne sexe="M" id="1">
              <personne:nom>AHMADI</personne:nom>
              <personne: prenom>Chaimae</personne: prenom>
              <personne: photo date_photo="14/04/2014">photo 1</personne: photo>
              <personne:naissance date="2012" ville="OUJDA" />
              <personne:deces date="" ville="" />
          </personne: personne>
      
          <mariage:informations_marriage>
              <mariage:info_marriage idHomme="1" idFemme="2" >
                  <mariage:date date_marriage="1981" date_divorcer="" />
                  <mariage: photo>photo mariage</mariage: photo>
                  <mariage:descendant id_des="" />
              </mariage:info_marriage>
          </mariage:informations_marriage>       
      </arbre>
       
      Last edited: Feb 4, 2017
      Loading...

Share This Page

Share