Télécharger la présentation
La présentation est en train de télécharger. S'il vous plaît, attendez
1
Programmation Web : DOM en PHP
Jérôme CUTRONA 13:34:00 Programmation Web
2
Introduction 13:34:00 Programmation Web
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 13:34:00 Programmation Web
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 PHP Java … 13:34:00 Programmation Web
5
En JavaScript 13:34:00 Programmation Web
6
Exemple XML DOM JavaScript
<?xml version="1.0" encoding="UTF-8" ?> <liste> <animal idani="AC001-03"> <noman>Aquilon</noman> <visites>1</visites> </animal> <animal idani="AC001-01"> <noman>Bobo</noman> <visites>3</visites> </liste> 13:34:00 Programmation Web
7
Exemple XML DOM JavaScript
liste ¶·· <?xml·version="1.0" ······encoding="UTF-8"·?>¶ <liste>¶ ··<animal·idani="AC001-03">¶ ····<noman>Aquilon</noman>¶ ····<visites>1</visites>¶ ··</animal>¶ ··<animal·idani="AC001-01">¶ ····<noman>Bobo</noman>¶ ····<visites>3</visites>¶ </liste>¶ ¶·· animal idani="AC001-03" animal idani="AC001-01" ¶···· ¶·· ¶···· ¶·· noman visites noman visites ¶···· ¶···· Aquilon 1 Bobo 3 13:34:00 Programmation Web
8
Exemple XML DOM JavaScript
loadXMLDoc() .documentElement liste ¶·· .getElementsByTagName( 'animal') ¶·· animal idani="AC001-03" animal idani="AC001-01" [0] .getAttribute('idani') ¶···· ¶·· ¶···· ¶·· .getElementsByTagName( 'noman')[0] noman visites noman visites .firstChild ¶···· ¶···· .nodeValue Aquilon 1 Bobo 3 13:34:00 Programmation Web
9
Exploiter des données au format XML
Objet XML : getElementsByTagName(n) Collection de nœuds Collection de nœuds : length nombre d'éléments [x] accès au xéme élément Nœud : firstChild Premier fils childNodes Collection de fils hasChildNodes() Possède des fils ? nodeValue Valeur du nœud nodeName Nom du nœud getAttribute(a) Valeur de l'attribut 13:34:00 Programmation Web
10
En PHP 13:34:00 Programmation Web
11
DOM PHP API DOM orientée objet en PHP Principales classes :
DOMNode DOMElement DOMText DOMDocument 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_* 13:34:00 Programmation Web
12
Classe DOMNode Nœud de l’arbre DOM Principaux attributs :
public readonly string $nodeName ; public string $nodeValue ; public readonly int $nodeType ; public readonly DOMNode $parentNode ; public readonly DOMNodeList $childNodes ; public readonly DOMNode $firstChild ; 13:34:00 Programmation Web
13
Classe DOMNode Principales méthodes :
DOMNode appendChild ( DOMNode $newnode ) bool hasAttributes ( void ) bool hasChildNodes ( void ) DOMNode insertBefore ( DOMNode $newnode [, DOMNode $refnode ] ) DOMNode removeChild ( DOMNode $oldnode ) DOMNode replaceChild ( DOMNode $newnode , DOMNode $oldnode ) 13:34:00 Programmation Web
14
Classe DOMElement Nœud balise de l’arbre DOM Hérite de DOMNode
Principal attribut propre : readonly public string $tagName ; Principales méthodes propres : string getAttribute ( string $name ) DOMNodeList getElementsByTagName ( string $name ) bool hasAttribute ( string $name ) bool removeAttribute ( string $name ) DOMAttr setAttribute ( string $name , string $value ) void setIdAttribute ( string $name , bool $isId ) 13:34:00 Programmation Web
15
Classe DOMDocument Représente un document HTML ou XML entier
Hérite de DOMNode Principales méthodes : bool loadHTMLFile ( string $ filename ) mixed load ( string $filename [, int $options = 0 ] ) string saveHTML ( void ) string saveXML ([ DOMNode $node [, int $options ]] ) DOMElement createElement ( string $name [, string $value ] ) DOMAttr createAttribute ( string $name ) DOMText createTextNode ( string $content ) DOMElement getElementById ( string $elementId ) DOMNodeList getElementsByTagName ( string $name ) 13:34:00 Programmation Web
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 ; Principale méthode : DOMNode item ( int $index ) 13:34:00 Programmation Web
17
Précisions importantes
13:34:00 Programmation Web
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 13:34:00 Programmation Web
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 getElementsByTagName(nom_élément) Méthode de la classe noeudDOM Retourne une collection = un tableau contenant 0 à n éléments getElementsByTagName n’existe pas 13:34:00 Programmation Web
Présentations similaires
© 2024 SlidePlayer.fr Inc.
All rights reserved.