Télécharger la présentation
La présentation est en train de télécharger. S'il vous plaît, attendez
Publié parJacqueline Belin Modifié depuis plus de 9 années
1
Programmation Web : DOM en PHP Jérôme CUTRONA jerome.cutrona@univ-reims.fr 11:06:45 Programmation Web 2014-2015 1
2
I NTRODUCTION 211:06:45 Programmation Web 2014-2015
3
DOM = Document Object Model API (Application Programming Interface) pour la manipulation de HTML / XML Définit la structure logique des documents Définit la façon d’y accéder, de la manipuler Créer des documents Parcourir leur structure Ajouter, effacer, modifier des éléments Ajouter, effacer, modifier leur contenu 311:06:45 Programmation Web 2014-2015
4
Qu’est-ce que le DOM ? Représentation arborescente du document Modèle objet (structure + méthodes) Permet la manipulation du document Des implémentations : JavaScript JavaScript PHP PHP Java Java … 411:06:45 Programmation Web 2014-2015
5
E N J AVA S CRIPT 511:06:45 Programmation Web 2014-2015
6
Exemple XML DOM JavaScript Aquilon Aquilon 1 1 Bobo Bobo 3 3 611:06:45 Programmation Web 2014-2015
7
Exemple XML DOM JavaScript 711:06:45 Programmation Web 2014-2015 liste animalidani="AC001-03" noman visites Aquilon1 animalidani="AC001-01" noman visites Bobo3 ¶·· ¶···· ¶···· ¶·· ¶···· ¶···· ¶····¶···· ¶ <liste> Aquilon Aquilon 1 1 Bobo Bobo 3 3 </liste>
8
Exemple XML DOM JavaScript 811:06:45 Programmation Web 2014-2015 liste animalidani="AC001-03" noman visites Aquilon1 animalidani="AC001-01" noman visites Bobo3 ¶·· ¶···· ¶···· ¶·· ¶···· ¶···· ¶····¶···· ¶·· loadXMLDoc().documentElement.getElementsByTagName( 'animal') 'animal') [0].getAttribute('idani').getElementsByTagName( 'noman')[0].firstChild.nodeValue
9
Exploiter des données au format XML Objet XML : getElementsByTagName(n) Collection de nœuds getElementsByTagName(n) Collection de nœuds Collection de nœuds : length nombre d'éléments length nombre d'éléments [x] accès au x éme élément [x] accès au x éme élément Nœud : firstChild Premier fils firstChild Premier fils childNodes Collection de fils childNodes Collection de fils hasChildNodes() Possède des fils ? hasChildNodes() Possède des fils ? nodeValue Valeur du nœud nodeValue Valeur du nœud nodeName Nom du nœud nodeName Nom du nœud getAttribute(a) Valeur de l'attribut getAttribute(a) Valeur de l'attribut 911:06:45 Programmation Web 2014-2015
10
E N PHP 1011:06:45 Programmation Web 2014-2015
11
DOM PHP API DOM orientée objet en PHP Principales classes : DOMNode DOMNode DOMElement DOMElement DOMText DOMText DOMDocument DOMDocument DOMNodeList DOMNodeList Permettent la lecture ou la création d’un fichier XML ou HTML Utilise la table de caractères utf-8 utiliser iconv et les fonctions mb_* 1111:06:45 Programmation Web 2014-2015
12
Classe DOMNode Nœud de l’arbre DOM Principaux attributs : public readonly string $nodeName ; public readonly string $nodeName ; public string $nodeValue ; public string $nodeValue ; public readonly int $nodeType ; public readonly int $nodeType ; public readonly DOMNode $parentNode ; public readonly DOMNode $parentNode ; public readonly DOMNodeList $childNodes ; public readonly DOMNodeList $childNodes ; public readonly DOMNode $firstChild ; public readonly DOMNode $firstChild ; 1211:06:45 Programmation Web 2014-2015
13
Classe DOMNode Principales méthodes : DOMNode appendChild ( DOMNode $newnode ) DOMNode appendChild ( DOMNode $newnode ) bool hasAttributes ( void ) bool hasAttributes ( void ) bool hasChildNodes ( void ) bool hasChildNodes ( void ) DOMNode insertBefore ( DOMNode $newnode [, DOMNode $refnode ] ) DOMNode insertBefore ( DOMNode $newnode [, DOMNode $refnode ] ) DOMNode removeChild ( DOMNode $oldnode ) DOMNode removeChild ( DOMNode $oldnode ) DOMNode replaceChild ( DOMNode $newnode, DOMNode $oldnode ) DOMNode replaceChild ( DOMNode $newnode, DOMNode $oldnode ) 1311:06:45 Programmation Web 2014-2015
14
Classe DOMElement Nœud balise de l’arbre DOM Hérite de DOMNode Principal attribut propre : readonly public string $tagName ; readonly public string $tagName ; Principales méthodes propres : string getAttribute ( string $name ) string getAttribute ( string $name ) DOMNodeList getElementsByTagName ( string $name ) DOMNodeList getElementsByTagName ( string $name ) bool hasAttribute ( string $name ) bool hasAttribute ( string $name ) bool removeAttribute ( string $name ) bool removeAttribute ( string $name ) DOMAttr setAttribute ( string $name, string $value ) DOMAttr setAttribute ( string $name, string $value ) void setIdAttribute ( string $name, bool $isId ) void setIdAttribute ( string $name, bool $isId ) 1411:06:45 Programmation Web 2014-2015
15
Classe DOMDocument Représente un document HTML ou XML entier Hérite de DOMNode Principales méthodes : bool loadHTMLFile ( string $ filename ) bool loadHTMLFile ( string $ filename ) mixed load ( string $filename [, int $options = 0 ] ) mixed load ( string $filename [, int $options = 0 ] ) string saveHTML ( void ) string saveHTML ( void ) string saveXML ([ DOMNode $node [, int $options ]] ) string saveXML ([ DOMNode $node [, int $options ]] ) DOMElement createElement ( string $name [, string $value ] ) DOMElement createElement ( string $name [, string $value ] ) DOMAttr createAttribute ( string $name ) DOMAttr createAttribute ( string $name ) DOMText createTextNode ( string $content ) DOMText createTextNode ( string $content ) DOMElement getElementById ( string $elementId ) DOMElement getElementById ( string $elementId ) DOMNodeList getElementsByTagName ( string $name ) DOMNodeList getElementsByTagName ( string $name ) 1511:06:45 Programmation Web 2014-2015
16
Classe DOMNodeList Collection de nœuds DOM Résultat des recherches effectuées avec DOMNodeList getElementsByTagName ( string $name ) des classes DOMElement et DOMDocument Principal attribut : readonly public int $length ; readonly public int $length ; Principale méthode : DOMNode item ( int $index ) DOMNode item ( int $index ) 1611:06:45 Programmation Web 2014-2015
17
P RÉCISIONS IMPORTANTES 1711:06:45 Programmation Web 2014-2015
18
Informations générales Le DOM est une API générale, ne dépendant pas d’un langage Les classes et méthodes sont très similaires quel que soit le langage utilisé Les spécificités de chaque langage doivent cependant être respectés (syntaxe !) Les fichiers XML ne sont pas forcément validés avant exploitation Ne pas faire trop de suppositions quant à l’ordre des balises : getElementsByTagName 1811:06:45 Programmation Web 2014-2015
19
Le cas getElementsByTagName Dans beaucoup de cas, la navigation dans le DOM se fera en cherchant des éléments à partir de leur nom collection getElement s ByTagName(nom_élément) Méthode de la classe noeudDOM Retourne une collection = un tableau getElementsByTagName n’existe pas 1911:06:45 Programmation Web 2014-2015
Présentations similaires
© 2024 SlidePlayer.fr Inc.
All rights reserved.