Arbres DOM (OC informatique, EPFL)

Slides:



Advertisements
Présentations similaires
Lundi 15 Juin 2009 Les principales techniques JavaScript.
Advertisements

Données structurées et XML
Introduction aux Web Services Partie 1. Technologies XML
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.
Transformation de documents XML
DTD Sylvain Salvati
Copyright France Télécom, tous droits réservés Paris Web Ateliers Les bibliothèques JS jQuery Orange Labs Julien Wajsberg, Recherche & Développement.
Données structurées et XML
XHTML EXtensible HyperText Markup Language. HTML et XML HTML (HyperText Markup Language) et XML (eXtensible Markup Language) sont deux spécifications.
HTML CSS.
le langage les éléments
1 JavaScript V0 : Nauer. 2 JavaScript Quid ? Langage de programmation lié à HTML. Code JavaScript intégré aux pages HTML. Code interprété par le navigateur.
Les fonctions de XPath et XSLT
Annie Danzart, Christine Potier
SVG: Scalable Vector Graphics
SVG: Scalable Vector Graphics
SVG: Scalable Vector Graphics
JavaScript.
Manipulation d’XML avec XSL
CREATION DE FEUILLE DE STYLE pour structuré le document XML
Introduction aux Web Services Partie 1. Technologies HTML-XML
Introduction aux Web Services Partie 1. Technologies HTML-XML
UNIVERSITE CHOUAIB DOUKKALI Département des mathématiques
OCaml – Les arbres L3 MI.
Faculté I&C, Claude Petitpierre, André Maurer What is this ? (Quest ce que this ?)
Présentation de la séquence de cours sur les interactions HTML-javascript Laure Walser, 11 juin 2010.
Introduction à DOM Maroua Bouzid
Xml/xslt : Extensible Stylesheet Language Transformation réalisé par: saÏd NAÏM.
Bienvenue! Qui suis-je? Webmestre depuis 1994 Café Internet en 1996 Commerce électronique Gestion de contenu web Marketing interactif.
XML: Syntaxe XML, DTD et Schémas
Le langage Javascript pour le web
Xpath XML Path language par Yves Bekkers
XSLT Langage de transformation darbre par Yves Bekkers.
Staf2x - Tecfa - UniGE 1 Traitement XML avec DOM PHP 5 – XML – DOM Dajana Kapusova – TECFA - UNIGE.
JavaScript.
Feuilles de styles CSS Syntaxe d'application d'un style à une balise HTML : Les différents types de style : Pourquoi utiliser un style ? Possibilité étendue.
Arbres DOM et XML (OC informatique, EPFL). html head body table html headbody table tr td texte1texte2 tr td texte3texte4 Deux représentations d’un arbre.
Animateur : Med HAIJOUBI
PHP & My SQL.
Les feuilles de style en HTML. CSS CSS: feuilles de style en cascade Permettent d’appliquer une mise en page à l’ensemble d’un site très simplement Permettent.
D.O.M. Modèle Objet de Document
1 JavaScript V0 : Nauer. 2 JavaScript Quid ? Langage de programmation lié à HTML. Code JavaScript intégré aux pages HTML. Code interprété par le navigateur.
JavaScript Nécessaire Web.
XSL eXtensible Stylesheet Language Historique 1999: XSLT 1.0 et XPATH 1.0 : versions supportées par la plupart des outils depuis février 2007 XSLT 2.0.
LE HTML ISN Terminale S Un peu d’histoire …
Initiation à Python et à Latex
Cours de programmation web
Les balises HTML et les objets JavaScript correspondants Objet document L'objet document est important dans la mesure ou il contient tous les objets du.
Bien présenter des documents longs…
S'initier au HTML et aux feuilles de style CSS Cours 5.
MJ. Blin et M. CsernelPoleInfo31 XML et ses environnements Documents XML bien formés Prologue Arbre d'éléments Attributs Commentaires Entités internes.
HTML Cours 3. Plan du cours Les feuilles de styles CSS Mise en forme du texte et des paragraphes.
Chap 0 : Introduction HTML et CSS
Asynchronous JavaScript And XML AJAX C. Petitpierre
XML fortement adopté en tant que format indépendant d’échange de données. Utilisation de XML pour la modélisation de données structurées et non structurées.
AJAX Jérôme CUTRONA 06:28:58 Programmation Web
420-B63 Programmation Web Avancée Auteur : Frédéric Thériault 1.
Cours : HTML 1 avril 2013.
Programmation Web : DOM en PHP Jérôme CUTRONA 11:06:45 Programmation Web
GENIE MULTIMEDIA Restitution de documents CSS Christine Vanoirbeek EPFL – IC – CGC Bâtiment BC (Station 14) 1015 LAUSANNE
Projet XML Contrôle des véhicules Par R.Khounsamnane &J.Socié.
CSS et DREAMWEAVER.
Deug 11 Systèmes d ’Information, cours 3b Michel de Rougemont Université Paris II Styles et édition.
M2202 – Algorithmique – T.BAUSER. Objectifs Utiliser Jquery pour : - modifier/ajouter/supprimer un élément/un attribut/une classe, - créer des animations,
Plan de la présentation Le langage HTML Dreamweaver MX Les premiers outils pour créer une page web :  Propriétés d’une page  Création de cadres  Création.
Lire et manipuler du XML...
HTML.
420-B63 Programmation Web Avancée Auteur : Frédéric Thériault
Programmation Web : DOM en PHP
Ecole polytechnique fédérale de Lausanne
Transcription de la présentation:

Arbres DOM (OC informatique, EPFL)

Création d'éléments HTML var body = document.body var titre = document.createElement("h2") body.appendChild(titre) titre.appendChild(document.createTextNode("Leçon sur le DOM")) Equivalent à <body onload="execute()">     <h2>Leçon sur le DOM</h2> </body>

Adjonction d'éléments HTML var paragraphe = document.createElement("p") body.appendChild(paragraphe) paragraphe.appendChild(document.createTextNode("DOM signifie ")) var span = document.createElement("span") span.style.fontWeight = "bold" span.style.fontStyle = "italic" paragraphe.appendChild(span) object model")) span.appendChild(document.createTextNode("document  Produit <body onload="execute()">     <h2>Leçon sur le DOM</h2>     <p>DOM signifie <i><b>document object model</b></i></p> </body>

Deux représentations d’un arbre HTML <body> <table> <tr> <td>text1</td> <td>text2</td> </tr> <td>text3</td> <td>text4</td> </table> </body> html head body table html head body table tr td texte1 texte2 texte3 texte4

Un arbre (terminologie) racine feuille nœud parent nœud enfant feuille feuille

Attributs des nœuds html head body table tr tr document.body (défini par le navigateur) head body table aNode tr tr aNode.tagName node.nodeName: BODY, TABLE, TR, TD, #text node.textContent: texte du sous-arbre

Relations des nœuds html head body table - childNodes tr tr aNode.parentNode table - childNodes aNode tr tr aNode.childNodes[1] aNode.lastChild node.childNodes.length aNode.childNodes[0] aNode.firstNode

Accès à un élément d’un arbre <body> <table> <tr> <td>text1</td> <td>text2</td> </tr> <td>text3</td> <td>text4</td> </table> </body> Attention, les nœuds d’espaces ne sont pas pris en compte document.body.childNodes[0] .childNodes[0] .childNodes[1] .childNodes[0].value document.body.firstChild .firstChild .firstChild.value

Adjonction d’un nœud <table> <tr id="unTR"> <td>text1</td> <td>text2</td> <td></td> </tr> </table> unNoeud = document.getElementById("unTR") nouvTD = document.createElement("TD") unNoeud.appendChild(nouvTD)

Adjonction d’un texte <table> <tr id="unTR"> <td>text1</td> <td>text2</td> <td>mon texte</td> </tr> </table> txt = document.createTextNode("mon texte") nouvTD.appendChild(txt)

Elimination d’un nœud unParent.removeChild(unNoeud) unParent.removeChild(unParent.childNodes[1]) unNoeud.parentNode.removeChild(unNoeud)

Parcours d’un arbre liste identité function parcourtEnfants(noeud) { // définition for (var i=0 ; i<noeud.childNodes.length ; i++) { alert(noeud.childNodes[i].nodeName) } } leNoeud: leNoeud = document.getElementById("leNoeud") parcourtEnfants(leNoeud) // appel liste identité

Un étage de l’arbre function parcourtPetitsEnfants(arg) { for (var i=0 ; i<arg.childNodes.length ; i++) { var nd = arg.childNodes[i] alert(nd.nodeName) parcourtEnfants(nd) }

Parcours récursif de l’arbre function parcourtPetitsEnfants(arg) { for (var i=0 ; i<arg.childNodes.length ; i++) { var nd = arg.childNodes[i] alert(nd.nodeName) parcourtPetitsEnfants (nd) }

Tableaux associatifs et syntaxe objets id = [ ] id [ "prenom" ] = "Peter" id [ "nom" ] = "Tagasi" id = { prenom : "Peter", nom : "Tagasi" } id.prenom == "Peter"

Tableaux associatifs, indicés et objets id = { prenom : "Peter", nom : "Tagasi" } id.prenom == "Peter" ids = [ { prenom : "Peter", nom : "Tagasi" }, { prenom : "Hans", nom : "Vogel" } ] ids[1].nom == "Vogel"

Tableaux associatif, indicés et objets lst = { liste : [ { { identité : { prenom : "Peter", nom : "Tagasi"  } }, { { identité : { prenom : "Hans", nom : "Vogel" ] lst.liste[0].identite.nom

Parcours automatique et récursif for (var key in tableau) { if ((typeof tableau[key] == object) && tableau[key].length…) for (var i=0; i< … … } // un bel exercice !

Troisième syntaxe d’arbre: XML {prenom : "Peter", nom : "Tagasi"} <prenom>Peter</prenom> <nom>Tagasi</nom>

Liste d’emprunts <emprunts> <personne> <identite> <prenom>Peter</prenom> <nom>Tagasi</nom> </identite> <livres> <titre>Tarzan dans les arbres</titre> <titre>Jane sur une branche</titre> </livres> </personne> </emprunts>

Lecture / écriture de fichiers de texte et XML (arbres) sur le serveur qui a envoyé la page

Lecture synchrone d’un fichier de texte function makeRequest(URL) { // définition http_request = new XMLHttpRequest() http_request.open('GET', URL, false) http_request.send(null) return http_request.responseText } var txt = makeRequest("Tree.xml") // appel var aTbl = txt.getElementsByTagName("personne")

Lecture synchrone d’un fichier XML function makeRequest(URL) { // définition http_request = new XMLHttpRequest() http_request.open('GET', URL, false) http_request.send(null) return http_request.responseXML } var xml = makeRequest("Tree.xml") // appel var aTbl = xml.getElementsByTagName("personne")

Accès à un arbre XML (2 possibilités) xml.getElementsByTagName("emprunts")[0] .childNodes[0].childNodes[0] .childNodes[0].firstChild.nodeValue xml.getElementsByTagName("personne")[0] .getElementsByTagName("titre")[1] .firstChild.nodeValue

Appel asynchrone (AJAX) function makeRequest(URL, alertFunction) { http_request = new XMLHttpRequest() http_request.onreadystatechange = function() { alertFunction(http_request,URL) } http_request.open('GET', URL, true) http_request.send(null) return var alertContents = function (http_local_request, URL) { document.getElementById("Display").innerHTML = http_local_request.responseXML makeRequest("fiches.xml", alertContents) // appel

Ecriture d’un fichier XML var temp = [ ] temp.push("<html>") temp.push("<h1>" + txt + "<h1>") temp.push("</html>") File.write( "tmp.xml", temp.join("\n") )

Fichiers disponibles sur LemanOS http://lti.epfl.ch/Livre http://lti.epfl.ch/Livre/AJAX/