1

TD4 : XPATH

(18/11/2005)

(correction)

2) Trouver les éléments titres de tous les livres de la bibliographie
//Livre/Titre

3) Trouver tous les paragraphes du document XML
//p

4) Trouver les sources des avis présent dans la bibliographie.
//Avis/@source

6) Trouver la valeur de l'attribut identifiant Jean Paul Sartre (dont vous pourrez vous servir dans la suite du TP)
//Perso [((Nom="Sartre") and (Prenom="Jean-Paul"))]/@id

7) Trouver l'élément titre du livre dont l'ISBN est 2070364313
//Livre [ISBN = "2070364313"]/Titre

8) Trouver le texte de l’élément titre du livre dont l'ISBN est 2070364313
//Livre [ISBN = "2070364313"]/Titre/text()

9) Trouver le texte de la biographie de Prévert.
//Perso [Nom="Prévert"]/Biographie/p/text()

11) Trouver l ’année de naissance de Sartre
//Perso [((Nom="Sartre") and (Prenom="Jean-Paul"))]/Naissance/@annee
id('a1')/Naissance/@annee

12) Trouver les éléments Info sur Sartre.
//Perso [(Nom="Sartre") and (Prenom="Jean-Paul")]/Infos/Info
id('a1')/Infos/Info


13) Trouver les éléments Titre des livres qui ont des préfaces et des postfaces.
//Livre [Preface and Postface]/Titre

14) Trouver les Avis "Mot de l'éditeur".
//Avis [@source="Mot de l'éditeur"]

16) Trouver les titres des livres pour lesquels on a des avis (utiliser la requête précédente)
//Livre [@id = //Avis [text() != ""]/@lref]/Titre

17) Trouver les auteurs pour lesquels on n'a pas de référence
//Auteur [not (@aref)]

18) Trouver le titre du livre qui a le plus grand nombre de pages (utiliser la fonction max()).
//Livre [NombreDePages = max(//Livre/NombreDePages)]/Titre

19) Trouver les auteurs des livres d’éditeurs différents de Gallimard (utiliser la fonction distinct() pour enlever les doublons)
distinct-values(//Livre [Editeur != "Gallimard"]/Auteur)

21) Trouver les noms des auteurs décédés en 1980
//Perso [Deces/@annee = "1980" ]/Nom

22) Trouver les personnes mortes avant l'année de naissance de Sartre.
//Perso [Deces/@annee < //Perso [((Nom="Sartre") and (Prenom="Jean-Paul"))]/Naissance/@annee]/Nom

23) Trouver les avis dont le texte parle de théâtre (dont le text contient la chaîne de caractères "théâtre")
//Avis[contains(text(),"théâtre")]/text()

24) Trouver le deuxième auteur de l’avant dernier livre de la bibliographie
//Livre [position() = last()-1]/Auteur [position() = 2]

26) Trouver l'identificater du livre "Les Mots" qui ne possède pas d'alias
//Livre [((not (@alias)) and (Titre="Les Mots"))]/@id

27) Trouver tous les ids des livres alias du livre Les Mots.
//Livre [@alias = //Livre [((not (@alias)) and (Titre="Les Mots"))]/@id]/@id

28) Trouver les collections dans lesquelles "La nausée" a été édité
//Livre [((not (@alias)) and (Titre="La nausée")) or (@alias = //Livre [((not (@alias)) and (Titre="La nausée"))]/@id)]/Collection