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 |