Java – XML Eric Blaudez 05 - Partie II.

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

Transformation de documents XML
Les technologies XML Cours 3 : Les APIS XML Janvier Version 1.0 -
Domaines nominaux XSLT
Manipulation d’XML avec XSL
UNIVERSITE CHOUAIB DOUKKALI Département des mathématiques
Introduction à DOM Maroua Bouzid
Xml/xslt : Extensible Stylesheet Language Transformation réalisé par: saÏd NAÏM.
Notions sur le XML Réfs : manuel p 149. Introduction Le XML (eXtensible Markup Language) est un standard d'échange de données. Il fait partie comme le.
Technologies web et web sémantique TP3 - XML. XML eXtensible Markup Language (langage extensible de balisage) – Caractéristiques: méta-langage = un langage.
Programmation Web : DOM en PHP Jérôme CUTRONA 11:06:45 Programmation Web
Le débogage Semaine 12 Version A15. Plan de leçon - Débogage  Commentaire javadoc  Définition  Fonctionnement  Point d’arrêt  Exécution  Contrôler.
GCstar Gestionnaire de collections personnelles Christian Jodar (Tian)
Stéphane Frénot, Frederique Laforest, Frédéric Le-Mouël IJA 1 TD 6 IJA Structures de données JAVA.
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.
Les instructions pour la création de cette présentation sont incluses dans la page de commentaires de chaque diapositive. Dans le menu Affichage, cliquez.
Java – Réseau Eric Blaudez 06.
Master ESEEC Rédaction de documents (longs) structurés Patrice Séébold Bureau 109, Bât B.
Le xml.
Micro Informatique au Cellier
Lire et manipuler du XML...
Création de site web Langage & programmation.
Création et téléchargement des fichiers
I- ANALYSE DU BESOIN / Plan
Exploitation de logiciels :
Modèle objet : les classes
Asynchronous Javascript And Xml
Mettre à jour les données
Pas de variable globale
Les notions de classe et d'objet
Introduction (1 / 2) Automate cellulaire Treillis : Voisinage :
Javadoc et débogueur Semaine 03 Version A17.
Traitement d’images Semaine 05.
Collecte de données CAPI
HTML.
Les bases de données et le modèle relationnel
420-B63 Programmation Web Avancée Auteur : Frédéric Thériault
Session 1 31 mai 2017 Plateforme ICONICS Justine Guégan
Javadoc et débogueur Semaine 03 Version A16.
Question 5 : La numérisation suffit-elle à valoriser l’information ?
Présentation de JQUERY
Codage Indenter le code Limiter la portée des variables Traiter les erreurs en premier Utiliser le switch au delà de 3 tests en cascades Ne jamais utiliser.
1 Exemple d’un document (article). 2 XML: eXtensible Markup Language Wikipédia XML (Extensible Markup Language, « langage de balisage extensible ») est.
Programmation en C++ C++ de base
Modélisation avec UML 2.0 Partie II Diagramme de classes.
Programmation Android Communication entre composants
CSS et DREAMWEAVER (Suite et fin)  Les liens
Calcul Scientifique Initiation à SCILB
Programmation Android GUI (widgets) et ressources
Cours 10 : Les Web Services et WSDL Février Version 1.0 -
Catherine Cyrot - bibliothèques numériques - Cours 5
Programmation Android Les listes
20 Données semi-structurées et XML
Programmation Web : Introduction à XML
Programmation Web : Schémas XSD
Programmation Web : DOM en PHP
Schéma de conception Factory Method Exemple
Atos, Atos et le poisson, Atos Origin et le poisson, Atos Consulting ainsi que le poisson seul sont des marques déposées d'Atos Origin SA. © 2006 Atos.
FRAMEWORKS : XMLBEANS / STRIPES
STREAMS (et fichiers).
Lecture/Écriture de fichiers (I/O)
Catherine Cyrot - bibliothèques numériques - Cours 5
DOM (document object model)
Definition de html sommaire. Présentation de html, css et javascript Module 1.
ScienceDirect Guide d’utilisation de la base de données : ScienceDirect Pr R. EL OUAHBI.
Comment aller plus loin avec Zotero? Comité d’Aide à la Publication, FMT Zotero worshop Hand’s on session Zotero worshop Hand’s on session 12h-12h30.
LINQ. LINQ (Language-Integrated Query) est une nouveauté du.NET Framework 3.5 C’est le nom d’un ensemble de technologies basé sur l’intégration de fonctions.
Site web, Ce qu’il faut savoir ?
Synchronized Multimedia Integration Language par Yves Bekkers
Transcription de la présentation:

Java – XML Eric Blaudez 05 - Partie II

Description Manipulation des fichiers XML. Ce cours est une brève introduction à la manipulation de fichiers XML Introduction Manipulation de document XML Exemple : écrire un fichier XML Exemple : lire un fichier XML Java - XML 2

Agenda – XML Introduction Manipulation de document XML Exemple : écrire un fichier XML Exemple : lire un fichier XML Java - XML 3

XML Introduction Java - XML 4 XML (EXtensible Markup Language) est un langage balisé d'écriture de fichier. Les fichiers XML sont des fichiers textes : il est possible d'écrire des fichiers XML avec un simple éditeur de texte. C'est sans doute à l'heure actuelle l'un des formalismes les plus utilisé, par exemple nous le retrouverons dans les fichiers SVG (images vectorielles), dans le MathML (formalisme d'écriture de formule mathématiques), DocBook pour l'écriture d'ouvrage,...

XML Introduction Java - XML 5 Un fichier XML doit suivre quelques règles : la première ligne doit être de la forme : les balise sont représentées par de : Doe une balise peut avoir des attributs : une balise ouverte doit impérativement être fermée (voir exemple ci-dessus) une balise ne peut pas commencer par un chiffre

Agenda – XML Introduction Manipulation de document XML Exemple : écrire un fichier XML Exemple : lire un fichier XML Java - XML 6

XML Manipulation de document XML Java - XML 7 La classe DocumentBuilder fournie les fonctionnalités pour la construction d’un fichier XML en chargeant un fichier ou manuellement. Un document XML est représenté par la classe Document.

XML Manipulation de document XML Java - XML 8 MéthodesDescription abstract DOMImplementation getDOMImplementation() Retourne une instance d'un DOMImplementation Schema getSchema()Retourne une instance du schéma utilisé avec la ressource XML abstract boolean isValidating()Indique si le parser est configuré pour valider la ressource XML abstract Document newDocument()Renvoi un nouvel object 'Document' Document parse(File f) Document parse(InputStream is) Document parse(InputStream is, String systemId) Document parse(String uri) Parse une entrée XML void reset()Replace le 'DocumentBuilder' dans sa configuration initiale

XML Manipulation de document XML Java - XML 9 Cette API permet de gérer des objets Document, qui sont une représentation des documents XML La plupart du temps la manipulation de fichiers XML fait intervenir quatre objets implémentant l'interface Node: Document : pour la gestion du document XML Element : pour la gestion des balises Attr : pour la gestion des attributs (des balises) Comment : pour les commentaires

XML Manipulation de document XML Java - XML 10 DocumentElement Att Comment Node

XML Manipulation de document XML Java - XML 11 MéthodeDescription Element createElement(String name)Créer une balise Att createAttribute(String name)Créer un attribut Comment createComment(String name)Créer un commentaire Extrait de l’API de Document

XML Manipulation de document XML Java - XML 12 MéthodeDescription String getAttribute(String name) Attr getAttributeNode(String name) Retourne la valeur (ou un nœud) d'un attribut en fonction de son nom NodeList getElementsByTagName(String name) Retrouve tous les descendants de l'élément ayant le nom name String getTagName()Retourne le nom de la balise boolean hasAttribute(String name)Retourne vrai si il existe une attribut avec le nom name void removeAttribute(String name)Supprime l'attribut ayant le nom name void setAttribute(String name, String value)Ajoute un nouvel attribut Extrait de l’API de Element

XML Manipulation de document XML Java - XML 13 MéthodeDescription String getName()Retourne le nom de l'attribut Element getOwnerElement()Retourne l'élément possédant l'attribut String getValue() void setValue(String value) retourne la valeur de l'attribut (getValue). Ou défini la valeur de l'attribut (setValue) Extrait de l’API de Att (les attributs)

XML Manipulation de document XML Java - XML 14 DocumentBuilder builder = factory.newDocumentBuilder(); Document document= builder.newDocument(); Création d’un document Element root = document.createElement("agenda"); Création d’une balise Comment comment = document.createComment("Agenda backup"); Création d’un commentaire Element event1 = document.createElement("event"); event1.setAttribute("public", "no"); Création d’un attribut

XML Manipulation de document XML Java - XML 15 La fonction newDocument() permet d'obtenir un document 'vide'. Il s'agit maintenant de le remplir. La classe Document dispose de fonctions pour créer les balises du fichier XML, les attributs ou encore les commentaires. La structure d'un document XML est hiérarchique, il suffit donc de créer les éléments (avec la méthode createElement) et de les ajouter (appendChild) en respectant la structure choisie. Il est possible d’ajouter des attributs aux éléments en utilisant la méthode setAttribute.

Agenda – XML Introduction Manipulation de document XML Exemple : écrire un fichier XML Exemple : lire un fichier XML Java - XML 16

XML Ecrire un fichier XML Java - XML 17 Train defense 0 Train defense 1 Train defense 2 Train defense 3 Train defense 4 En utilisant, DocumentBuilder & Document nous allons créer le document ci-contre

XML Ecrire un fichier XML Java - XML 18 DocumentBuilder builder = factory.newDocumentBuilder(); Document document= builder.newDocument(); Element root = document.createElement("agenda"); root.appendChild(comment); for (int event_i = 0;event_i<5;event_i++) { Element event = document.createElement("event"); event.setAttribute("public", "yes"); event.setAttribute("id", ""+event_i); event.setAttribute("date", " "+(14+event_i)+":00"); event.setAttribute("duration", "02:00:00"); Element eventTitle = document.createElement("title"); eventTitle.appendChild(document.createTextNode("Train defense " + event_i)); Element eventRoom = document.createElement("room"); eventRoom.setAttribute("number", "i107"); event.appendChild(eventTitle); event.appendChild(eventRoom); root.appendChild(event); } document.appendChild(root); Racine Boucle créant 5 balises ‘event’ Création de la balise ‘event’ avec ses attributs Création de la balise ‘title’ avec son texte (createTextNode) Création de la balise ‘room’ avec ses attributs Ajout des balises dans ‘ l’arbre ’ XML

XML Ecrire un fichier XML Java - XML 19 TransformerFactory transformerFactory = TransformerFactory.newInstance(); Transformer transformer = transformerFactory.newTransformer(); DOMSource source = new DOMSource(document); StreamResult output = new StreamResult(new File(System.getProperty("user.home")+"/save.xml")); transformer.setOutputProperty(OutputKeys.INDENT, "yes"); transformer.setOutputProperty("{ "2"); transformer.transform(source, output); L'écriture d'un fichier XML s'effectue en utilisant la classe Transformer. Cette classe offre des fonctionnalités de sauvegarde et de transformation de document : elle peut être utilisée pour appliquer une feuille de style XSL par exemple.

XML Ecrire un fichier XML Java - XML 20 Document Agenda (root) event titleroom newDocument … createElement createTextNode appendChild

Agenda – XML Introduction Manipulation de document XML Exemple : écrire un fichier XML Exemple : lire un fichier XML Java - XML 21

XML Lire un fichier XML 22 DocumentBuilder builder = factory.newDocumentBuilder(); Document document= builder.parse(new File("/save.xml")); Element root = document.getDocumentElement(); NodeList rootChildren = root.getElementsByTagName("event"); for (int ci = 0;ci<rootChildren.getLength();ci++) { if (rootChildren.item(ci).getNodeType() == Node.ELEMENT_NODE) { Node child = (Element)rootChildren.item(ci); if (child.hasAttributes()) { NamedNodeMap attributes = child.getAttributes(); for (int att_i = 0;att_i<attributes.getLength();att_i++) { Attr attribute = (Attr)attributes.item(att_i); } NodeList titles = ((Element)child).getElementsByTagName("title"); NodeList rooms = ((Element)child).getElementsByTagName("room"); for (int si = 0;si<titles.getLength();si++) { Node subNode = titles.item(si); Element titleElement = (Element)subNode; } Lit le fichier et récupère la racine Obtient la liste des balises ‘event ’ Boucle sur les balises ‘event ’ Recherche des attributs Obtient les balises title & room

XML Lire un fichier XML Java - XML 23 Document Agenda (root) DocumentBuilder parse getDocumentElement getElementsByTagName("event") getElementsByTagName(« room » | « title ») getAttributes Boucles sur les éléments