XML et les échanges entre applications

publicité
Introduction à DOM
Maroua Bouzid
[email protected]
L'interface DOM


Standard W3C fait pour HTML et XML
Objectif
–
–
–

Intérêt
–

2
Mettre le document XML en mémoire sous une forme objet
Traduire les éléments en objets : attributs et méthodes
Permettre ensuite à toute application de l’utiliser de manière
uniforme à travers les méthodes définies sur ses objets
Uniformiser ainsi l’usage de XML à travers différentes
applications : JavaScript, Java, C++,…
DOM est indépendant de toute application
Principaux parseurs
Document
XML
Xerces
Apache (Java, C++)
MSXML
Microsoft (C++, VB…)
SDK Oracle
Oracle (Java)
4DOM
Python
Parseur DOM
Arbre DOM
API DOM
3
Application
Exemple d'arbre DOM
Document
Racine du document
NodeList
Element
<Guide>
NodeList
<Guide>
<Restaurant id="R1">Le meilleur
restaurant</Restaurant>
Element
<Restaurant>
NamedNodeMap
</Guide>
Attr
Id="R1"
NodeList
4
Text
Le meilleur restaurant
La structure

Le modèle objet DOM
–
–
Structure arborescente d’éléments
Un élément composé d’un ou
plusieurs nœud:





Document
DocumentType
<!DOCTYPE ...>
Element
<Restaurant ....>
Douze types de nœuds
–
–
5
D’autres éléments
Des instructions de traitement,
Ou encore de texte
ProcessingInstruction
Mais aussi des attributs <?xml:stylesheet ...>
Node
–
Document (racien en xml)
Comment
Attribute,…
Child
Text
Le meilleur restaurant
....
Le noeud

Chaque noeud XML est transformé en unobjet
–
–
–

Les méthodes et propriétés permettent notamment :
–
–
–
–
6
Définition
Propriétés
Des méthodes
Créer (createNode,..),
Modifier (repalceChild,…)
Supprimer (remove,…)
Extraire des données (get,…) de n’importe quel élément ou
contenu d’un document XML
Les relations


DOM définit les types de relation entre chaque nœud, et
des directions de déplacement dans une arborescence
XML
Les propriétés:
–
–
–
–
–
–
7
parentNode retourne le père
childNodes retourne les enfants
firstChild retourne le premier enfant
lastChild retourne le dernier enfant
previousSibling retourne le frère précedent
nextSibling retourne le frère suivant du nœud courant
DOM et JavaScript

Chargement du XML à travers JavaScript (pour
mozilla)
<script type="text/javascript">
xmlDoc= document.implementation.createDocument("","",null);
xmlDoc.load("note.xml");…..</script>

Le fichier complet :
–
–
–
8
Test du navigateur
Création de l’objet document
Chargement du fichier
Accès aux éléments et attributs

1.
2.
3.
9
document : objet particulier possédant plusieurs
méthodes et propriétés
La méthode getElementById permet de sélectionner un
élément d'identifiant donné dans une page ;
La méthode getElementsByName permet de
sélectionner les éléments portant un nom donné dans
une page ;
La méthode getElementsByTagName permet de
sélectionner les éléments portant un nom de balise
donné dans une page.
Accès aux éléments et attributs




Accès aux attributs
La méthode getAttribute() permet de retourner la valeur
d'un attribut de nom donné,
La propriété attributes renvoie à la collection complète des
attributs d'un élément.
Par exemple, si elt désigne l'élément img suivant, cette
méthode renverra une liste constituée des nœuds src, alt,
width et height (dans cet ordre).
<img src="oiseau.gif" alt="Un oiseau sur un arbre" width="45" height="60">
10
Mise en œuvre - Construction

Créer une instance de Document
–

Construire les nœuds de l’arbre
–
–

L’instance de Document sert de « factory »
createElementNS(namespaceURI, qName),
createAttributeNS(…)…
Établir les liens entre les nœuds
–
11
En général, dépend de l’implémentation
–
appendChild(node), replaceChild(node1, node2),
insertBefore(node)
setAttributeNS(…)
Bilan DOM

Une interface objet standard
–
–

Des concepts familiers
–

Interface vaste mais intuitive
Performance limitée
–
–
12
Navigation
Construction
Place mémoire importante
Traitement à la fin de l'analyse
Téléchargement