Le langage XPath. Le langage XPath p.1/??

Documents pareils
Module BDWEB. Maîtrise d informatique Cours 9 - Xquery. Anne Doucet. anne.doucet@lip6.fr

XML par la pratique Bases indispensables, concepts et cas pratiques (3ième édition)

Master d Informatique Corrigé du partiel novembre 2010

Chapitre 10 Arithmétique réelle

Logiciel de Base. I. Représentation des nombres

UEO11 COURS/TD 1. nombres entiers et réels codés en mémoire centrale. Caractères alphabétiques et caractères spéciaux.

Thierry BOULANGER. par la pratique. Bases indispensables Concepts et cas pratiques XML. 3 ième édition. Nouvelle édition

Production de documents avec XSLT. Production de documents p.1/??

Définitions. Numéro à préciser. (Durée : )

Présentation du langage et premières fonctions

Info0101 Intro. à l'algorithmique et à la programmation. Cours 3. Le langage Java

Evolution et architecture des systèmes d'information, de l'internet. Impact sur les IDS. IDS2014, Nailloux 26-28/05/2014

Langage HTML (2 partie) <HyperText Markup Language> <tv>lt La Salle Avignon BTS IRIS</tv>

Instructions et spécifications pour la transmission en format XML de déclarations par lots. 30 mai 2015 MODULE 1

FileMaker Server 11. Publication Web personnalisée avec XML et XSLT

CREATION D UNE EVALUATION AVEC JADE par Patrick RUER (

Intelligence Artificielle Planification

Les bases de données

BASE DE DONNÉES XML NATIVE

Séance 1 Introduction aux bases de données

Initiation à la Programmation en Logique avec SISCtus Prolog

SQL Parser XML Xquery : Approche de détection des injections SQL

BASE DE DONNÉES XML NATIVE

<?xml version="1.0" encoding="iso " standalone="yes"?>

PIVOT. Pivot/Querier Documentation technique XML/XSD/XSLT

OASIS Date de publication

ECR_DESCRIPTION CHAR(80), ECR_MONTANT NUMBER(10,2) NOT NULL, ECR_SENS CHAR(1) NOT NULL) ;

Document Object Model (DOM)

Access et Org.Base : mêmes objectifs? Description du thème : Création de grilles d écran pour une école de conduite.

Supplément de renseignements : Examens d applications et pare-feux d applications web clarifiés Normes : Normes en matière de sécurité des données de

Expression des contraintes. OCL : Object C o n t r a i n t L a n g u a g e

Grandes lignes ASTRÉE. Logiciels critiques. Outils de certification classiques. Inspection manuelle. Definition. Test

Configuration du FTP Isolé Active Directory

Bases de Données. Le cas des BD relationnelles ouverture sur les BD relationnelles spatiales Séance 2 : Mise en oeuvre

Feuille TD n 1 Exercices d algorithmique éléments de correction

TP 1. Prise en main du langage Python

Notions fondamentales du langage C# Version 1.0

Master I Génie Logiciel

Programmation linéaire

Design et implémentation d un logiciel de validation et de génération de configurations réseaux

Skype (v2.5) Protocol Data Structures (French) Author : Ouanilo MEDEGAN

Ingénierie Dirigée par les Modèles. Editeurs de modèles. (Eclipse Modeling Tools) Jean-Philippe Babau

SMS INFO & TABLEAU DE BORD CLIENT. Avec Cloud Communication Solution (C.C.S).

Programmation Web. Madalina Croitoru IUT Montpellier

Programmation des Applications Réparties. Parsers XML DOM et SAX

LES OUTILS D ALIMENTATION DU REFERENTIEL DE DB-MAIN

INF 232: Langages et Automates. Travaux Dirigés. Université Joseph Fourier, Université Grenoble 1 Licence Sciences et Technologies

«AMICALE DES CADRES DE LA POLICE NATIONALE ET DE LA SECURITE INTERIEURE» «ACPNSI»

Protocoles DHCP et DNS

Faculté de Génie Chaire industrielle en infrastructures de communication. La technologie XML. Wajdi Elleuch

Annexe C Spécification pour les fichiers importés en format XML

Bac Blanc Terminale ES - Février 2011 Épreuve de Mathématiques (durée 3 heures)

IFIPS 5 / Nouvelles Architectures Logicielles Projet : Bus de web services avec «moteur» BPEL

Langage SQL (1) 4 septembre IUT Orléans. Introduction Le langage SQL : données Le langage SQL : requêtes

Jade. Projet Intelligence Artificielle «Devine à quoi je pense»

arcopole Studio Annexe 4 Intégration LDAP et processus d authentification Site du programme arcopole :

Langage SQL : créer et interroger une base

Adobe Technical Communication Suite 5

OpenText StreamServe Cours Customer Communication Management L essentiel

Excel avancé. Frédéric Gava (MCF)

arcopole Studio Version 3.1

May Lopez PETIT COUTEAU SUISSE CRÉATIF. May Lopez Petit couteau suisse créatif

L exclusion mutuelle distribuée

Release note. DB2P LPC/Autres LPC v1.19 est disponible en Simulation et en Production DB2P

DMP1 DSFT des Interfaces DMP des LPS Annexe : complément de spécification sur l impression des documents à remettre au patient

LES TYPES DE DONNÉES DU LANGAGE PASCAL

NFE204 Bases de données avancées

Mathématiques financières

FctsAffines.nb 1. Mathématiques, 1-ère année Edition Fonctions affines

PROSOP : un système de gestion de bases de données prosopographiques

Guide de démarrage Intellipool Network Monitor

Olivier Mondet

Maîtriser la diffusion de son catalogue e-commerce

RAPPELS SUR LES METHODES HERITEES DE LA CLASSE RACINE Object ET LEUR SPECIALISATION (i.e. REDEFINITION)

Cahier Technique. «Développer une application intranet pour la gestion des stages des étudiants» Antonin AILLET. Remi DEVES

1/24. I passer d un problème exprimé en français à la réalisation d un. I expressions arithmétiques. I structures de contrôle (tests, boucles)

Chapitre 1 I:\ Soyez courageux!

Logiciel WINPONT. Fonctionnement. Synoptique

Comment déposer les comptes annuels des associations, fondations et fonds de dotation.

Cours d introduction à l informatique. Partie 2 : Comment écrire un algorithme? Qu est-ce qu une variable? Expressions et instructions

DNS. Olivier Aubert 1/27

BD et XML : Exercices

Pharmed. gestion de pharmacie hospitalière. Installation / déploiement

Mise en place du Module Magento ShoppingFlux

Climat Scolaire - Manuel utilisateur - Chapitre 2 : «Créer, Editer et suivi d un texte»

Cours d Algorithmique-Programmation 2 e partie (IAP2): programmation 24 octobre 2007impérative 1 / 44 et. structures de données simples

Maple: premiers calculs et premières applications

Le Langage De Description De Données(LDD)

Bases de programmation. Cours 5. Structurer les données

Faculté Polytechnique de Mons. Le processus d Extraction, Transformation et Load (ETL) dans des entrepôts de données XML

Optimiser votre distribution tout en restant indépendant

L optimisation des performances, la simplification des montées de version G.O.L.D. et le suivi statistique des processus.

Atelier C TIA Portal CTIA04 : Programmation des automates S7-300 Opérations numériques

Plus courts chemins, programmation dynamique

Consignes pour la remise des données RESEAU

Catalogue des formations Edition 2015

2 S I M 1 P H O N E G U I D E U T I L I S A T E U R. Guide d utilisation E-commerce / Prestashop

aux différences est appelé équation aux différences d ordre n en forme normale.

Bases de données et sites WEB Licence d informatique LI345

Représentation des Nombres

Transcription:

Le langage XPath Le langage XPath p.1/??

À quoi sert XPath? Le langage permet de désigner un ou plusieurs nœuds dans un document XML, à l aide d expressions de chemin. Exemples : Extraction de valeurs <xsl:valueof select="salle/@no"> Prédicats de test <xsl:if test=" ($titre = or TITRE = $titre) and ($seance = or HEURE >= $seance) and ($ville = or VILLE = Le langage XPath p.2/?? $ville)">

Les arbres XPath Un typage simplifié par rapport à celui de OM ocument ; ; ; ibut ; ProcessingInstruction ; Comment. pas d entité, pas de section littérale Le langage XPath p.3/??

Expressions XPath Une expression XPath : s évalue en fonction d un nœud contexte désigne un ou plusieurs chemins dans l arbre à partir du nœud contexte a pour résultat un ensemble de nœuds ou une valeur, numérique, booléeenne ou alphanumérique Le langage XPath p.4/??

Exemple de référence ocument Instruction Java ins1 A Comment CommFin C a1 a2 att2 a3 att3 15 e1 e2 e3 Le langage XPath p.5/??

Chemins XPath Un chemin XPath est une suite d étapes : [/]étape /étape /.../étape eux variantes : Un chemin peut être absolu : /A//@ Le nœud contexte est alors la racine du document ou relatif A//@ Le langage XPath p.6/??

Étapes XPath Une étape : trois composants axe::filtre[prédicat1][prédicat2] l axe : sens de parcours des nœuds le filtre : type des nœuds qui seront retenus le(s) prédicat(s) : propriétés que doivent satisfaire les nœuds retenus On peut faire une union de chemins : //A /@ Le langage XPath p.7/??

Évaluation d une expression XPath à partir du nœud contexte, on évalue l étape 1 ; on obtient un ensemble de nœuds ; on prend alors, un par un, les nœuds de cet ensemble, et on les considère chacun à leur tour comme nœud contexte pour l évaluation de l étape 2 ; à chaque étape, on prend successivement comme nœud contexte chacun des nœuds faisant partie du résultat de l étape précédente. Le langage XPath p.8/??

/A//@ : nœud initial ocument Instruction Java ins1 A Comment CommFin C a1 a2 att2 a3 att3 15 e1 e2 e3 Le langage XPath p.9/??

/A//@ : première étape ocument Instruction Java ins1 A Comment CommFin C a1 a2 att2 a3 att3 15 e1 e2 e3 Le langage XPath p.10/??

/A//@ : seconde étape ocument Instruction Java ins1 A Comment CommFin C a1 a2 att2 a3 att3 15 e1 e2 e3 Le langage XPath p.11/??

/A//@ : troisième étape ocument Instruction Java ins1 A Comment CommFin C a1 a2 att2 a3 att3 15 e1 e2 e3 Le langage XPath p.12/??

Contexte d évaluation Une étape s évalue en tenant compte d un contexte constitué de un nœud contexte, position initiale de l étape ; ce nœud fait luimême partie d un ensemble obtenu par évaluation de l étape précédente on connaît la taille de cet ensemble (fonction last()) on connaît la position du nœud contexte dans cet ensemble (fonction position()) Le langage XPath p.13/??

Les axes XPath Un axe XPath recouvre les deux notions suivantes : un sousensemble des nœuds de l arbre relatif au nœud contexte ; l ordre de parcours de ces nœuds à partir du nœud contexte. N : il existe des notations abrégées : «@» remplace attribute::. Le langage XPath p.14/??

Exemple : le nœud contexte ocument Instruction Java ins1 A Comment CommFin C a1 a2 att2 a3 att3 15 e1 e2 e3 Le langage XPath p.15/??

L axe child ocument Instruction Java ins1 A Comment CommFin Nœud contexte C a1 a2 att2 a3 att3 15 e1 e2 e3 Le langage XPath p.16/??

L axe attribute:: (@) ocument Instruction Java ins1 A Comment CommFin Nœud contexte C a1 a2 att2 a3 att3 15 e1 e2 e3 Le langage XPath p.17/??

Le père : parent::a ocument Instruction Java ins1 A Comment CommFin Nœud contexte C a1 a2 att2 a3 att3 15 e1 e2 e3 Le langage XPath p.18/??

Notation abrégée de parent::a La notation abrégée.. désigne le père du nœud contexte, quel que soit son type. Équivalent à : parent::node() node() est un filtre qui désigne tous les types de nœuds (sauf les attributs) Le langage XPath p.19/??

escendants : descendant::node( ocument Instruction Java ins1 A Comment CommFin Nœud contexte C a1 a2 att2 a3 att3 15 e1 e2 e3 Le langage XPath p.20/??

Ancêtres : ancestor::node() ocument Instruction Java ins1 A Comment CommFin Nœud contexte C a1 a2 att2 a3 att3 15 e1 e2 e3 Le langage XPath p.21/??

L axe self il désigne le nœud contexte luimême. oit être complété par un filtre. Exemples : notre nœud contexte : self:: mais self::a renvoie un ensemble vide Pour prendre le nœud quel que soit son type : self::node() Notation abrégée : «.» Le langage XPath p.22/??

precedingsibling::node() ocument Instruction Java ins1 A Comment CommFin Nœud contexte C a1 a2 att2 a3 att3 15 e1 e2 e3 Le langage XPath p.23/??

following::node() ocument Instruction Java ins1 A Comment CommFin Nœud contexte C a1 a2 att2 a3 att3 15 e1 e2 e3 Le langage XPath p.24/??

Autres axes preceding : les précédents (dans l ordre du document) descendantorself : les descendants, plus le nœud contexte La notation abrégée : «//» exprime descendantorself::node()/child:: ancestororself : les ancêtres, plus le nœud contexte Le langage XPath p.25/??

Les filtres eux manières de filtrer les nœuds : par leur nom ; valable pour les types de nœuds qui ont un nom :, ProcessingInstruction et par leur type. Le langage XPath p.26/??

/A// ocument Instruction Java ins1 A Comment CommFin C a1 a2 att2 a3 att3 15 e1 e2 e3 Le langage XPath p.27/??

/descendant::node()/@att2 ocument Instruction Java ins1 A Comment CommFin C a1 a2 att2 a3 att3 15 e1 e2 e3 Le langage XPath p.28/??

Nom générique : /A/* ocument Instruction Java ins1 A Comment CommFin C a1 a2 att2 a3 att3 15 e1 e2 e3 Le langage XPath p.29/??

Filtrage sur le type de nœud text(). Nœuds de type Exemple : /A///text() comment(). Nœuds de type Comment Exemple : /comment() processinginstruction(). Nœuds de type ProcessingInstruction Exemple : /processinginstruction(), ou /processinginstruction( java ) node(). Tous les types de nœud Le langage XPath p.30/??

Résultat de /A///text() ocument Instruction Java ins1 A Comment CommFin C a1 a2 att2 a3 att3 15 e1 e2 e3 Le langage XPath p.31/??

Prédicats Prédicat : expression booléenne constituée d un ou plusieurs tests, composés avec les connecteurs logiques habituels and et or Test (1) : toute expression XPath, dont le résultat est convertie en booléen Test (2) : une comparaison ou un appel de fonction. il faut connaître les règles de conversion Le langage XPath p.32/??

Quelques exemples /A/[@] Les nœuds /A/ qui ont un attribut @ /A/[@= a1 ] Les nœuds /A/ qui ont un attribut @ valant a1 /A//descendant::text()[position()=1] Le premier nœud de type descendant d un /A/. S abrège : /A//descendant::text()[1] Le langage XPath p.33/??

Pour bien comprendre ans l expression /A/[@] : On s intéresse aux nœuds de type fils de l élément racine A. Parmi ces nœuds on ne prend que ceux pour lesquels le prédicat [@] s évalue à true Cette expression s évalue avec pour nœud contexte un élément [@] vaut true ssi @ renvoie un ensemble de nœuds non vide Le langage XPath p.34/??

/A//descendant::text()[1] ocument Instruction Java ins1 A Comment CommFin C a1 a2 att2 a3 att3 15 e1 e2 e3 Le langage XPath p.35/??

Typage avec XPath On peut effectuer des comparaisons, des opérations. Cela implique un typage et des conversions de type. Types XPath : les numériques les chaînes de caractères les booléens (true et false) enfin les ensembles de nœuds Le langage XPath p.36/??

Numériques Notation décimale habituelle Comparaisons habituelles (<, >,!=) Opérations : +,, *, div, mod La fonction number() permet de tenter une conversion Si la conversion échoue on obtient NaN (Not a Number). À éviter... Ex : //node()[number(@) mod 2 = 1] Le langage XPath p.37/??

Conversions eux conversions sont toujours possibles. Vers une chaîne de caractères. utile pour la production de texte en XSLT (balise xsl:valueof) Vers un booléen utile pour les tests effectués dans XSLT (xsl:if, xsl:when) Le langage XPath p.38/??

Conversions booléennes Pour les numériques : 0 ou NaN sont false, tout le reste est true Pour les chaînes : une chaîne vide est false, tout le reste est true Pour les ensembles de nœuds : un ensemble vide est false, tout le reste est true Comparaisons : des règles de conversion étranges... Le langage XPath p.39/??

Fonctions XPath Quelques fonctions utiles dans les prédicats : concat(chaîne1, chaîne2,...) pour concaténer des chaînes contains(chaîne1, chaîne2) teste si chaîne1 contient chaîne2 count (expression) renvoie le nombre de nœuds désignés par expression name() renvoie le nom du nœud contexte not(expression) permet d exprimer la négation Le langage XPath p.40/??

Exemples d expressions XPath child::a/descendant::. Eléments de type descendants d un élément de type A, luimême fils du nœud contexte Forme abrégée : A// child::*/child:: donne les éléments de type petitfils du nœud contexte ; Forme abrégée : */ descendantorself:: : donne les éléments de type fils du nœud contexte, et le nœud contexte luimême s il est de type ; Le langage XPath p.41/??

Exemples XPath (suite) child::[position()=last() 1] : donne l avantdernier élément de type fils du nœud contexte ; Forme abrégée : [last()1] followingsibling::[position()=1] : donne le premier frère de droite du nœud contexte dont le type est ; /descendant::[position()=12] : donne le douzième élément de type du document ; Le langage XPath p.42/??

Exemples XPath (suite et fin) child::[child::c] : les fils de type avec au moins un fils de type C Forme abrégée : [C] /descendant::[attribute:: and attribute::att2] : donne les éléments de type qui ont au moins un attribut et un attribut att2 ; Forme abrégée : //[@ and @att2] child::*[self:: or self::c] : donne les fils de type ou de type C ; Le langage XPath p.43/??