Utilisation du DOM sous Lazarus/Free Pascal


précédentsommairesuivant

III. Structure du DOM

III-A. L'interfaçage avec DOM

Chaque élément constituant l'arbre, est représenté par une classe. La classe principale est TDOMNode dont dérivent plusieurs autres classes. Nous allons passer en revue les principaux attributs et méthodes de ces classes.

III-A-1. La classe TDOMNode

Chaque élément de l'arbre est un nœud représenté par la classe TDOMNode, ou des classes dérivées.
Cette classe définit différentes propriétés et méthodes permettant d'avoir accès aux informations relatives à un nœud de l'arbre telles que son nom et son type. Les principaux méthodes et attributs de la classe TDOMNode sont :

Attribut ou méthode Rôle
NodeName : DOMString Donne le nom du nœud (lecture seule)
NodeType: Integer Donne le type du nœud (voir plus loin)
Nodevalue : DOMString Donne la valeur du nœud (lecture+écriture)
function HasChildNodes: Boolean Indique si le nœud à des nœuds fils
ChildNodes: TDOMNodeList Donne la liste des nœuds fils (lecture seule)
function HasAttributes: Boolean; Indique si le nœud contient des attributs
Attributes: TDOMNamedNodeMap Donne les attributs du nœud sous forme d'une liste (voir plus loin)

III-A-2. La classe TDOMNodeList

Cette classe définit une liste de nœuds suivant l'ordre du document XML. Cette classe a deux attributs :

Attribut Rôle
Count : longWord Donne le nombre de nœuds contenu dans la liste (lecture seule)
Item[longWord] Permet d'obtenir un élément de la liste. Item est un tableau dont l'indice représente la position de l'élément dans la liste. Le premier élément est à la position 0 et non 1.

III-A-3. La classe TDOMNamedNodeMap

La classe TDOMNamedNodeMap est similaire à la classe TDOMNodeList puisqu'elle représente aussi une liste de nœuds. Mais les éléments de cette liste sont aussi stockés par clé.

Attribut Rôle
Length : longWord Donne le nombre de nœuds contenu dans la liste (lecture seule)
Item[longWord] Permet d'obtenir un élément de la liste. Item est un tableau dont l'indice représente la position de l'élément dans la liste. Le premier élément est à la position 0 et non 1.
function GetNamedItem(const name: DOMString): TDOMNode; Permet d'obtenir un nœud de la liste à partir son nom
function SetNamedItem(arg: TDOMNode): TDOMNode; Insert un nouveau nœud dans la liste
function RemoveNamedItem(const name: DOMString): TDOMNode; Retire le nœud ayant le nom name de la liste

III-A-4. La classe TDOMDocument

Cette classe contient l'arbre chargé en mémoire. Mais pour manipuler le DOM, nous utiliserons une classe dérivée de celle-ci : TXMLDocument. Les principaux attributs et méthodes de cette classe sont :

Attribut ou Méthode Rôle
DocumentElement: TDOMElement Donne la racine du l'arbre
function CreateElement(const tagName: DOMString): TDOMElement; Crée un nouveau nœud. La création de tous nouveaux nœuds doit se faire par appel de cette méthode
function GetElementsByTagName(const tagname: DOMString): TDOMNodeList; Donne la liste des nœuds fils ayant le tag spécifié en paramètre
function CreateTextNode(const data: DOMString): TDOMText; Crée un nœud textuel contenant la valeur du paramètre data
function CreateAttribute(const name: DOMString): TDOMAttr; Crée un nouvel attribut qu'on pourra ajouter à un nœud donné

III-A-5. La classe TDOMElement

Un TDOMElement est une classe dérivée d'un TDOMNode. Elle représente en particulier une balise. Elle permet en grande partie de manipuler les attributs d'un nœud.

Attribut ou Méthode Rôle
TagName: DOMString Donne le tag du nœud
function GetAttribute(const name: DOMString): DOMString; Donne la valeur de l'attribut d'un nœud
procedure SetAttribute(const name, value: DOMString); Définit un attribut du nœud
procedure RemoveAttribute(const name: DOMString); Retire un attribut du nœud
function GetElementsByTagName(const name: DOMString): TDOMNodeList; Liste les nœuds fils ayant le tag spécifié lors de l'appel de la méthode

III-A-6. La classe TDOMAttr

Cette classe définit l'attribut d'un nœud. Ces principales méthodes permettent de connaitre le nom de l'attribut et d'en modifier la valeur.

Attribut Rôle
Name: DOMString Le nom de l'attribut
Value: DOMString La valeur de l'attribut

III-B. Les types de nœuds

Un arbre DOM est formé d'un ensemble d'entités différentes dérivant de la classe TDOMNode. Pour différencier ces entités, la classe TDOMNode contient une propriété NodeType dont la valeur est de type entier. Afin de faciliter l'utilisation de cette propriété, une liste de constantes a été définie dont voici un tableau récapitulatif :

Constante Valeur Rôle
ELEMENT_NODE 1 Une balise de l'arbre
ATTRIBUTE_NODE 2 Attribut d'une balise de l'arbre
TEXT_NODE 3 Nœud textuel d'un arbre
COMMENT_NODE 8 Une balise de commentaire
DOCUMENT_NODE 9 Nœud racine de l'arbre.
DOCUMENT_FRAGMENT_NODE 11 Nœud racine d'un fragment d'arbre

précédentsommairesuivant

  

Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright © 2010 Darryl Kpizingui. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.