Lire et manipuler du XML...

Slides:



Advertisements
Présentations similaires
DOM Document Object Model. Généralités Standard du W3C Parseur XML – Génération dun arbre dobjet – Construction totale de larbre DOM est spécifié en IDL.
Advertisements

Les technologies XML Cours 3 : Les APIS XML Janvier Version 1.0 -
Introduction à DOM Maroua Bouzid
Techniques de R éé criture et Transformations Pierre-Etienne Moreau.
Programmation Web : DOM en PHP Jérôme CUTRONA 11:06:45 Programmation Web
JI Les systèmes d’autorisation et d’authentification dans AMI Fabian Lambert.
Introduction à la Programmation Orientée Objet H.GATI.
Mettre en ligne des cartes.
QuickPlace de LOTUS Logiciel générateur de SITE WEB : Installé sur un serveur (grenet), Permet de créer / gérer / utiliser un site privé, De donner des.
Les ORMs ● Faire coexister le monde relationnel et objet.
Présentation LabPlus v3. Solution novatrice en Technologies de l’information Solution novatrice en Technologies de l’information Application pour la Gestion.
Présentation Projet JEE Présentation des Frameworks Java Server Faces & Eclipse Link.
Les profils du SEDA confection de profil avec Agape.
RMLL 2008 Isis-FISH/Gesi Benjamin Poussin Code Lutin
Le DOM Le Document Object Model (DOM) est une interface de programmation pour les documents HTML et XML Il fournit une représentation structurée du document.
Initiation à QuickPlace, janvier Initiation à QuickPlace n Nature de l'outil n Fonctions de base (lecture, création) n Fonctions de gestionnaire.
GOOGLE MAPS ANDROID API V2. INTRODUCTION TO THE GOOGLE MAPS ANDROID API V2.
Cours de HTML suite 3. Sommaire...  Les formulaires. Les formulaires.  Structure basique du formulaire, balise. Structure basique du formulaire, balise.
1 Programmation en C++ IO en C++/SL ● Standard Library ● Types, objets pour IO ● L'entrée de clavier ● Sortie à l'écran ● Fichiers.
DIAGRAMME DE DEPLOIEMENT Exposé de: MBALLA MEKONGO Michèle MBOUNA FEUZE William SIEYADJEU Alex Lionel CHOPGWE Leonard NDUMATE Landry TIDJON Lionel.
Cahier des charges.
Cross-Plateform Cours JavaScript
Programmation en C++ Standard Library
Recherche Summon - HINARI (Module 3)
1.le DOM Introduction une page web est un document contenant du texte ainsi que des balises qui permettent de structurer ce document, en décrivant des.
Asynchronous Javascript And Xml
A JavaScript library for building user interfaces
Google analytics.
LES TABLEAUX EN JAVA.
Numérotation Insertion d'objets
Plateforme CountrySTAT Aperçu global de la préparation des tableaux dans la nouvelle plateforme CountrySTAT FORMATION DES POINTS FOCAUX SUR LE SYSTEME.
Algorithmique demander jeu du pendu.
Initiation aux bases de données et à la programmation événementielle
Comprendre les valeurs
Javadoc et débogueur Semaine 03 Version A16.
Bddictionnairique Phase 1
Principes de programmation (suite)
Asynchronous Javascript And Xml
Le CSS Principe de séparation du contenu et de la mise en forme
D3 – Produire, traiter, exploiter et diffuser des documents numériques
Guide des différences entre les deux versions de l’interface web
Présentation des EJB Enterprise Java Beans.
Notion De Gestion De Bases De Données
Création Et Modification De La Structure De La Base De Données
PROGRAMMATION INFORMATIQUE D’INGÉNIERIE II
Package R Markdown: Un outil pour générer des pages html avec R Studio
Chapter 12: Structures de données
DATA WEARHOUSE 1ère année LA: Technologies systèmes d’information
Programmation Android Bases De Données, SQL-lite
Formation sur les bases de données relationnelles.
CountrySTAT / FENIX Aperçu globale de la préparation des tableaux dans la nouvelle plateforme CountrySTAT FORMATION DES POINTS FOCAUX SUR LE SYSTEME.
Integrated Business intelligence
Diagrammes UML 420-KE2-LG.
Programmation Android Première application Android
„La plate-forme EAI “ Initiation à WBI
03- Evaluation Access 2003 Cette évaluation comporte des QCM (1 seule réponse) et des Zones à déterminer dans des copies d’écran.
FORMATION POWERPOINT 2007/2010
Le code de Huffman: est une méthode de compression statistique de données qui permet de réduire la longueur du codage d'un alphabet. Le code de Huffman.
Catherine Cyrot - bibliothèques numériques - Cours 5
20 Données semi-structurées et XML
Programmation Web : DOM en PHP
PRO1026 Programmation et enseignement
Système de gestion de contenu de sites web
Démarrage du projet Préparer les fonds de plan
Le langage C# : Partie 1.
Arbre binaire.
Support de formation Administrateur Entretiens
L'application Voice Dream pour Ipad par Jérôme Mignault
DICTIONNAIRES (MAPS).
Gestion des destinataires (recipients)
Transcription de la présentation:

Lire et manipuler du XML... Les programmes qui manipulent du XML doivent être capables de lire du XML de le représenter en mémoire Pour lire, il existe une API événementielle Simple API for XML – SAX Pour représenter du XML sous forme d'arbre Document Object Model – DOM (utilisé partout et surtout pour HTML)

Manipuler du XML en Java La librairie JAXP Permet de lire et représenter du XML Parsers (SAX ET DOM) javax.xml.parsers APIs SAX, DOM et StAX (mélange des 2 premiers) org.w3c.dom org.xml.sax javax.xml.stream (StAX) Permet de transformer du XML API XSLT La librairie JAXB Mapping objet-XML

Document Object Model C'est une interface standardisée permettant à des programmes d'accéder et de modifier le contenu de documents représentés sous forme d'arbres XML mais aussi HTML Recommandation W3C Il existe différentes versions de DOM Level 1 : Représentation des doc sous forme d'arbre (une balise → un nœud), opérations d'ajout, et de modification et de suppression Level 2 : Evènements, Ajout de l'accès par clé → getElementById Levels 3 et 4 : Support de Xpath, événements clavier, serialization XML

Simple API for XML SAX traite un document XML comme un flux d'événements Il ne permet pas l'accès aléatoire/direct à une portion du document On n'a pas besoin de charger tout le document en mémoire Les avantages Rapide, faible besoin en mémoire Les désavantages C'est moins facile que DOM...

Comparaison SAX et DOM SAX utilise une représentation sous forme d'événements et DOM sous forme d'arbre Source: https://docs.oracle.com/cd/B28359_01/appdev.111/b28394/adx_j_parser.htm#CCHCCEHA

Aperçu de SAX en Java On obtient un parser SAX via la SAXParserFactory Le doc. XML est parsé et les méthodes d'un ou plusieurs Handler sont appelées en réaction aux parties du document traité

Utilisation Illustration de la notion d'événements : https://en.wikipedia.org/wiki/Simple_API_for_XML# XML_processing_with_SAX#Example Tutorial SAX : https://docs.oracle.com/javase/tutorial/jaxp/sax/ind ex.html

Les types DOM DOM est composé d'un ensemble d'objets, chacun pourvu de méthodes Document Représente le document en entier, et sert de point d'entrée dans l'arbre Node Représente tout type de nœud (élément, texte attribut, etc.) Document est un sous-type de node

L'interface Document Les méthodes de recherche getElementById(x) L'élement doit avoir un attribut id getElementsByTagName(x) Retourne la liste des nœuds de type élements qui ont le nom passé en paramètre Les méthodes de création Element createElement(DOMString) Pour créer un élément, il faut ensuite l'insérer au bon endroit → c.f. méthodes de Node Text createTextNode(DOMString) Pour créer un nœud de type text

L'interface d'un Node Les attributs de base d'un nœud DOM nodeType : type du nœud 1=ELEMENT_NODE, 2=ATTRIBUTE_NODE,3=TEXT_NODE, 4=CDATA_SECTION_NODE, 5=ENTITY_REFERENCE_NODE, 6=ENTITY_NODE, 7=PROCESSING_INSTRUCTION_NODE, 8=COMMENT_NODE, 9=DOCUMENT_NODE, 10=DOCUMENT_TYPE_NODE, 11=DOCUMENT_FRAGMENT_NODE, 12=NOTATION_NODE nodeName : le nom du nœud Nom de la balise, de l'attribut ou #text si le nœud est de type 3 Pour les autres voir : http://www.w3schools.com/xml/dom_nodetype. asp nodeValue : la valeur du nœud Non null seulement pour les nœud feuilles attributes : liste des attributs du noeud textContent (DOM3) : représentation textuelle du nœud et de ses descendants

Résumé Interface nodeName nodeValue attributes Attr name of attribute value of attribute null CDATASection "#cdata-section" content of the CDATA Section Comment "#comment" content of the comment Document "#document" DocumentFragment "#document-fragment" DocumentType document type name Element tag name NamedNodeMap Entity entity name EntityReference name of entity referenced Notation notation name ProcessingInstruction target entire content excluding the target Text "#text" content of the text node

L'interface d'un Node (suite) Attributs de navigation ParentNode, childNodes, firstChild, lastChild, previousSlibing, nextSlibing Attributs d'espace de noms (namespace) namespaceURI, prefix, localName, baseURI Quelques méthodes Node appendChild(Node ajouté) Node insertBefore(Node inséré, Node ici) Node removeChild(Node supprimé) Node replaceChild(Node nouveau, Node ancien) Node cloneNode(Boolean) Boolean hasAttributes() Boolean hasChildNodes() Plus d'infos : https://developer.mozilla.org/en- US/docs/Web/API/Node

Aperçu de DOM en Java On récupère une instance de DocumentBuider (parser) via la DocumentBuilderFactory. La lecture d'un document XML via le DocumentBuilder retourne un objet Document Tutorial : https://docs.oracle.com/javase/tutorial/jaxp/dom/readingXML.html

Streaming API for XML StAx est une API pour lire et écrire du XML selon le principe de pull-parsing Push-Parsing  le parser envoie les événements vers le client le processus est conduit par le parser Pull-Parsing le client demande les données au parser Le processus est conduit par le client Le pull parsing est plus simple à utiliser On peut traiter du XML avec un itérateur comme pour une collection

StAX API 2 manières de parcourir des données XML Cursor Le document est vu comme une « table de données » Le curseur avance (seulement en avant) dans le document XML A chaque étape on récupère les données de l'endroit ou on est Itérateur Le document XML est vu comme un flux d'évènements Les évènements sont des objets du type XMLEvent On itère sur ce flux d'évènements