XXIX. Fonctions DOM

Introduction

L'extension DOM est le remplacement de l'extension DOM XML en PHP 4. Cette extension contient encore plusieurs anciennes fonctions mais elles ne doivent plus être utilisées. En particulier, les fonctions procédurales.

Cette extension vous permet de manipuler des documents XML avec l'API DOM.

Installation

Il n'y pas d'installation nécessaire pour utiliser ces fonctions, elles font parties du coeur de PHP.

Classes pré-définies

L'API de ce module suit, autant que possible, les standards niveau 2 de DOM. En conséquent, l'API est pleinement orientée objets. Il est bien d'avoir les standards DOM sous la main lors de l'utilisation de cette extension.

Ce module définit plusieurs classes, qui sont expliquées dans les tableaux suivants. Les classes avec un équivalent dans les standards sont nommées DOMxxx.

DOMAttr

Étend DOMNode. L'interface DOMAttr représente un attribut dans l'objet DOMElement.

Constructeur

Méthodes

Propriétés

Tableau 1.

NomTypeLecture seuleDescription
namestringouiLe nom de l'attribut
ownerElementDOMElementouiL'élément qui contient l'attribut
schemaTypeInfoboolouiPas encore implémenté, retourne toujours NULL
specifiedboolouiPas encore implémenté, retourne toujours NULL
valuestringnonLa valeur de l'attribut

DOMCharacterData

Étend DOMNode.

Méthodes

Propriétés

Tableau 2.

NomTypeLecture seuleDescription
datastringnonLe contenu du noeud
lengthintouiLa longueur du contenu

DOMComment

Étend DOMCharacterData.

Constructeur

DOMDocument

Étend DOMNode.

Constructeur

Méthodes

Propriétés

Tableau 3.

NomTypeLecture seuleDescription
actualEncodingstringoui 
configDOMConfigurationoui 
doctypeDOMDocumentTypeoui La déclaration de type de document associée avec ce document.
documentElementDOMElementoui C'est un attribut de convenance qui permet l'accès direct à l'enfant d'un noeud qui est l'élément document de ce document.
documentURIstringnon La localisation du document ou NULL si non défini.
encodingstringnon 
formatOutputboolnon 
implementationDOMImplementationoui L'objet DOMImplementation qui représente ce document.
preserveWhiteSpaceboolnonNe pas supprimer les espaces redondants. Vaut TRUE par défaut.
recoverboolnon 
resolveExternalsboolnon Définir à TRUE pour charger les entités externes depuis une déclaration doctype. Ceci est utile pour inclure des entités correspondants à des caractères dans vos documents XML.
standaloneboolnon 
strictErrorCheckingboolnonEnvoi une DOMException en cas d'erreurs. Vaut par défaut TRUE.
substituteEntitiesboolnon 
validateOnParseboolnonCharge et valide à nouveau la DTD. Vaut par défaut FALSE.
versionstringnon 
xmlEncodingstringoui Un attribut spécifiant, en tant que partie de la déclaration XML, l'encodage de ce document. Il vaut NULL lorsqu'il n'et pas spécifié ou lorsqu'il n'est pas connu, par exemple, lorsque le document a été créé en mémoire.
xmlStandaloneboolnon Un attribut spécifiant, en tant que partie de la déclaration XML, si oui ou non le document est autonome. Il vaut FALSE si non spécifié.
xmlVersionstringnon Un attribut spécifiant, en tant que partie de la déclaration XML, le numéro de version de ce document. S'il n'y a pas de déclaration et si le document supporte la fonctionnalité "XML", la valeur sera "1.0".

DOMDocumentType

Étend DOMNode

Chaque DOMDocument a un attribut doctype de valeur soit NULL, soit un objet DOMDocumentType.

Propriétés

Tableau 4.

NomTypeLecture seuleDescription
publicIdstringouiL'identifiant public du sous-ensemble externe.
systemIdstringouiL'identifiant système du sous-ensemble externe. Il peut être une URI absolue ou non.
namestringouiLe nom de la DTD ; i.e. le nom suivant immédiatement le mot clé DOCTYPE
entitiesDOMNamedNodeMapoui Un DOMNamedNodeMap contenant les entités générales, externes et internes, déclarées dans la DTD.
notationsDOMNamedNodeMapoui Un DOMNamedNodeMap contenant les notations déclarées dans la DTD.
internalSubsetstringoui Le sous-ensemble interne en tant que chaîne de caractères ou NULL s'il n'y en a pas. Ceci ne contient pas les crochets délimitants.

DOMElement

Étend DOMNode.

Constructeur

Méthodes

Propriétés

Tableau 5.

NomTypeLecture seuleDescription
schemaTypeInfoboolouiPas encore implémenté, retourne toujours NULL
tagNamestringouiLe nom de l'élément

DOMEntity

Étend DOMNode

Cette interface représente une entité connue, analysée ou non, du document XML.

Propriétés

Tableau 6.

NomTypeLecture seuleDescription
publicIdstringoui L'identifiant public associé à l'entité si spécifiée, NULL sinon.
systemIdstringoui L'identifiant système associé à l'entité si spécifié, NULL sinon. Ceci peut être une URI absolue ou non.
notationNamestringoui Pour les entités non-analysées, le nom de la notation pour cette entité. Pour les entités analysées, ceci vaut NULL.
actualEncodingstringnon Un attribut spécifiant l'encodage utilisé pour cette entité au moment de l'analyse, lorsque c'est une entité analysée externe. Ceci vaut NULL si c'est une entité du sous-ensemble externe ou si elle n'est pas connue.
encodingstringoui Un attribut spécifiant, en tant que partie de la déclaration texte, l'encodage de cette entité, lorsque c'est une entité analysée externe. Ceci vaut NULL sinon.
versionstringoui Un attribut spécifiant, en tant que partie de la déclaration texte, le numéro de version de cette entité, lorsque c'est une entité analysée externe. Ceci vaut NULL sinon.

DOMEntityReference

Étend DOMNode.

Constructeur

DOMException

Les opérations DOM lancent des exceptions sous des circonstances particulières, i.e., lorsqu'une opération est impossible à effectuer pour des raisons de logique.

Voir aussi Chapitre 20.

Propriétés

Tableau 7.

NomTypeLecture seuleDescription
codeintouiUn entier indiquant le type d'erreur générée

DOMImplementation

L'interface DOMImplementation fournit un nombre de méthodes pour effectuer des opérations qui sont indépendant de toute instance du model objet du document.

Constructeur

Méthodes

DOMNode

Méthodes

Propriétés

Tableau 8.

NomTypeLecture seuleDescription
nodeNamestringouiRetourne le nom le plus précis possible pour le type de noeud courant
nodeValuestringnonLa valeur de ce noeud, dépendant de son type.
nodeTypeintouiRécupère le type du noeud. Une des constantes XML_xxx_NODE prédéfinies
parentNodeDOMNodeouiLe parent de ce noeud
childNodesDOMNodeListoui Un DOMNodeList qui contient tous les enfants de ce noeud. S'il n'y a pas d'enfant, ce sera un DOMNodeList vide.
firstChildDOMNodeoui Le premier enfant de ce noeud. S'il n'y pas de tel noeud, ceci retourne NULL.
lastChildDOMNodeoui Le dernier enfant de ce noeud. S'il n'y a pas de tel noeud, ceci retourne NULL.
previousSiblingDOMNodeoui Le noeud précédent immédiatement ce noeud. S'il n'y a pas de tel noeud, ceci retourne NULL.
nextSiblingDOMNodeoui Le noeud suivant immédiatement ce noeud. S'il n'y a pas de tel noeud, ceci retourne NULL.
attributesDOMNamedNodeMapoui Un DOMNamedNodeMap contenant les attributs de ce noeud (si c'est un DOMElement) ou NULL sinon.
ownerDocumentDOMDocumentoui Un objet DOMDocument associé à ce noeud.
namespaceURIstringouiL'URI de l'espace de noms de ce noeud, ou NULL si non spécifié.
prefixstringnon Le préfixe de l'espace de noms de ce noeud, ou NULL si non spécifié.
localNamestringoui Retourne la partie locale du nom qualifié de ce noeud.
baseURIstringoui La base absolue de l'URI de ce noeud ou NULL si l'implémentation n'est pas arrivée à obtenir une URI absolue.
textContentstringnon Cet attribut retourne le contenu texte de ce noeud et ces descendants.

DOMNodeList

Méthodes

Propriétés

Tableau 9.

NomTypeLecture seuleDescription
lengthintoui Le nombre de noeuds dans la liste. La plage des indices des noeuds enfants valides est de 0 à length - 1 inclusivement.

DOMNotation

Étend DOMNode

Propriétés

Tableau 10.

NomTypeLecture seuleDescription
publicIdstringoui 
systemIdstringoui 

DOMProcessingInstruction

Étend DOMNode.

Constructeur

Propriétés

Tableau 11.

NomTypeLecture seuleDescription
targetstringoui 
datastringnon 

DOMText

Étend DOMCharacterData.

Constructeur

Méthodes

Propriétés

Tableau 12.

NomTypeLecture seuleDescription
wholeTextstringoui 

DOMXPath

Constructeur

Méthodes

Propriétés

Tableau 13.

NomTypeLecture seuleDescription
documentDOMDocument  

Exemples

La plupart des exemples de cette référence requièrent un fichier XML. Nous utiliserons le fichier book.xml qui contient ce qui suit :

Exemple 1. chapter.xml

<?xml version="1.0" encoding="iso-8859-1"?>
<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN"
 "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd" [
]>
<book id="listing">
 <title>My lists</title>
 <chapter id="books">
  <title>My books</title>
  <para>
   <informaltable>
    <tgroup cols="4">
     <thead>
      <row>
       <entry>Title</entry>
       <entry>Author</entry>
       <entry>Language</entry>
       <entry>ISBN</entry>
      </row>
     </thead>
     <tbody>
      <row>
       <entry>The Grapes of Wrath</entry>
       <entry>John Steinbeck</entry>
       <entry>en</entry>
       <entry>0140186409</entry>
      </row>
      <row>
       <entry>The Pearl</entry>
       <entry>John Steinbeck</entry>
       <entry>en</entry>
       <entry>014017737X</entry>
      </row>
      <row>
       <entry>Samarcande</entry>
       <entry>Amine Maalouf</entry>
       <entry>fr</entry>
       <entry>2253051209</entry>
      </row>
      <!-- TODO: I have a lot of remaining books to add.. -->
     </tbody>
    </tgroup>
   </informaltable>
  </para>
 </chapter>
</book>

Constantes pré-définies

Ces constantes sont définies par cette extension, et ne sont disponibles que si cette extension a été compilée avec PHP, ou bien chargée au moment de l'exécution.

Tableau 14. Constantes XML

ConstanteValeurDescription
XML_ELEMENT_NODE (entier) 1Le noeud est un DOMElement
XML_ATTRIBUTE_NODE (entier) 2Le noeud est un DOMAttr
XML_TEXT_NODE (entier) 3Le noeud est un DOMText
XML_CDATA_SECTION_NODE (entier) 4Le noeud est un DOMCharacterData
XML_ENTITY_REF_NODE (entier) 5Le noeud est un DOMEntityReference
XML_ENTITY_NODE (entier) 6Le noeud est un DOMEntity
XML_PI_NODE (entier) 7Le noeud est un DOMProcessingInstruction
XML_COMMENT_NODE (entier) 8Le noeud est un DOMComment
XML_DOCUMENT_NODE (entier) 9Le noeud est un DOMDocument
XML_DOCUMENT_TYPE_NODE (entier) 10Le noeud est un DOMDocumentType
XML_DOCUMENT_FRAG_NODE (entier) 11Le noeud est un DOMDocumentFragment
XML_NOTATION_NODE (entier) 12Le noeud est un DOMNotation
XML_HTML_DOCUMENT_NODE (entier) 13 
XML_DTD_NODE (entier) 14 
XML_ELEMENT_DECL_NODE (entier) 15 
XML_ATTRIBUTE_DECL_NODE (entier) 16 
XML_ENTITY_DECL_NODE (entier) 17 
XML_NAMESPACE_DECL_NODE (entier) 18 
XML_ATTRIBUTE_CDATA (entier) 1 
XML_ATTRIBUTE_ID (entier) 2 
XML_ATTRIBUTE_IDREF (entier) 3 
XML_ATTRIBUTE_IDREFS (entier) 4 
XML_ATTRIBUTE_ENTITY (entier) 5 
XML_ATTRIBUTE_NMTOKEN (entier) 7 
XML_ATTRIBUTE_NMTOKENS (entier) 8 
XML_ATTRIBUTE_ENUMERATION (entier) 9 
XML_ATTRIBUTE_NOTATION (entier) 10 

Tableau 15. Constantes DOMException

ConstanteValeurDescription
DOM_INDEX_SIZE_ERR (entier) 1 Si l'index ou la taille est négatif ou plus grand que la valeur autorisée.
DOMSTRING_SIZE_ERR (entier) 2 Si la rangée spécifiée de texte ne tient pas dans le DOMString.
DOM_HIERARCHY_REQUEST_ERR (entier) 3Si un noeud est inséré à un endroit non autorisé
DOM_WRONG_DOCUMENT_ERR (entier) 4Si un noeud est utilisé dans un document autre que celui qui l'a créé.
DOM_INVALID_CHARACTER_ERR (entier) 5 Si un caractère invalide ou non autorisé est spécifié, par exemple, dans un nom.
DOM_NO_DATA_ALLOWED_ERR (entier) 6 Si des données sont spécifiées dans un noeud qui ne supporte pas les données.
DOM_NO_MODIFICATION_ALLOWED_ERR (entier) 7 Si une tentative est faîte de modifier un objet où les modifications ne sont pas autorisées.
DOM_NOT_FOUND_ERR (entier) 8 Si une tentative est faîte de référencer un noeud dans un contexte où il n'existe pas.
DOM_NOT_SUPPORTED_ERR (entier) 9 Si l'implémentation ne supporte pas le type requis de l'objet ou de l'opération.
DOM_INUSE_ATTRIBUTE_ERR (entier) 10 Si une tentative est faîte d'ajouter un attribut qui est déjà utilisé autre part.
DOM_INVALID_STATE_ERR (entier) 11 Si une tentative est faîte d'utiliser un objet qui n'est pas, ou n'est plus, utilisable.
DOM_SYNTAX_ERR (entier) 12 Si une chaîne de caractères invalide ou illégale est spécifiée.
DOM_INVALID_MODIFICATION_ERR (entier) 13 Si une tentative est faîte de modifier le type d'un objet fondamental.
DOM_NAMESPACE_ERR (entier) 14 Si une tentative est faîte de créer ou de modifier un objet dans un sens qui est incorrect au regard de l'espace de noms.
DOM_INVALID_ACCESS_ERR (entier) 15 Si un paramètre ou une opération n'est pas supporté par l'objet fondamental.
DOM_VALIDATION_ERR (entier) 16 Si un appel à une méthode tel que insertBefore ou removeChild voudrait rendre le noeud invalide avec le respect de la validation partielle, cette exception sera exécutée et l'opération ne sera pas effectuée.
Table des matières
DOMAttr->__construct() --  Crée un nouvel objet DOMAttr
DOMAttr->isId() --  Vérifie si l'attribut est un identifiant défini
DOMCharacterData->appendData() --  Ajoute la chaîne à la fin des données dans le noeud
DOMCharacterData->deleteData() --  Supprime une sous-chaîne dans le noeud
DOMCharacterData->insertData() --  Insère une chaîne à la position spécifiée d'unité 16-bit
DOMCharacterData->replaceData() --  Remplace une sous-chaîne dans le noeud DOMCharacterData node
DOMCharacterData->substringData() --  Extrait un morceaux de données dans le noeud
DOMComment->__construct() --  Crée un nouvel objet DOMComment
DOMDocument->__construct() --  Crée un nouvel objet DOMDocument
DOMDocument->createAttribute() -- Crée un nouvel attribut
DOMDocument->createAttributeNS() --  Crée un nouvel attribut avec un espace de noms associé
DOMDocument->createCDATASection() -- Crée un nouveau noeud cdata
DOMDocument->createComment() -- Crée un nouveau noeud de commentaire
DOMDocument->createDocumentFragment() -- Crée un nouveau fragment de document
DOMDocument->createElement() -- Crée un nouveau noeud
DOMDocument->createElementNS() --  Crée un nouveau noeud avec un espace de noms associé
DOMDocument->createEntityReference() -- Crée un nouveau noeud de référence d'entité
DOMDocument->createProcessingInstruction() -- Crée un nouveau noeud PI
DOMDocument->createTextNode() -- Crée un nouveau noeud de texte
DOMDocument->getElementById() -- Cherche un élément avec un certain identifiant
DOMDocument->getElementsByTagName() -- Cherche tous les éléments quit ont le nom de balise donné
DOMDocument->getElementsByTagNameNS() --  Recherche tous les éléments avec un nom de balise donné dans un espace de noms spécifié
DOMDocument->importNode() -- Importe un noeud dans le document courant
DOMDocument->load() --  Charge du XML depuis un fichier
DOMDocument->loadHTML() --  Charge du HTML à partir d'une chaîne de caractères
DOMDocument->loadHTMLFile() --  Charge du HTML à partir d'un fichier
DOMDocument->loadXML() --  Charge du XML depuis une chaîne de caractères
DOMDocument->normalize() --  Normalise le document
DOMDocument->relaxNGValidate() --  Effectue une validation relaxNG sur le document
DOMDocument->relaxNGValidateSource() --  Effectue une validation relaxNG sur le document
DOMDocument->save() --  Sauvegarde l'arbre interne XML dans un fichier
DOMDocument->saveHTML() --  Sauvegarde le document interne dans une chaîne en utilisant un formattage HTML
DOMDocument->saveHTMLFile() --  Sauvegarde un document interne dans un fichier en utilisant un formattage HTML
DOMDocument->saveXML() --  Sauvegarde l'arbre interne XML dans une chaîne de caractères
DOMDocument->schemaValidate() --  Valide un document selon un schéma
DOMDocument->schemaValidateSource() --  Valide un document selon un schéma
DOMDocument->validate() --  Valide un document en se basant sur sa DTD
DOMDocument->xinclude() --  Remplace les XIncludes dans un objet DOMDocument
DOMElement->__construct() --  Crée un nouvel objet DOMElement
DOMElement->getAttribute() -- Retourne la valeur d'un attribut
DOMElement->getAttributeNode() -- Retourne le noeud d'attribut
DOMElement->getAttributeNodeNS() --  Retourne le noeud d'attribut
DOMElement->getAttributeNS() -- Retourne la valeur de l'attribut
DOMElement->getElementsByTagName() -- Retourne les éléments par leur nom de balise
DOMElement->getElementsByTagNameNS() -- Récupère les éléments par leur espace de noms et leur localName
DOMElement->hasAttribute() -- Vérifie si un attribut existe
DOMElement->hasAttributeNS() --  Vérifie si un attribut existe
DOMElement->removeAttribute() -- Efface un attribut
DOMElement->removeAttributeNode() -- Efface un attribut
DOMElement->removeAttributeNS() -- Efface un attribut
DOMElement->setAttribute() -- Ajoute un nouvel attribut
DOMElement->setAttributeNode() -- Ajoute un nouvel attribut à l'élément
DOMElement->setAttributeNodeNS() -- Ajoute un nouvel attribut à l'élément
DOMElement->setAttributeNS() -- Ajoute un nouvel attribut
DOMAttr->__construct() --  Crée un nouvel objet DOMEntityReference
DOMImplementation->__construct() --  Crée un nouvel objet DOMImplementation
DOMImplementation->createDocument() --  Crée un objet DOM Document du type spécifié avec ses éléments
DOMImplementation->createDocumentType() --  Crée un objet DOMDocumentType vide
DOMImplementation->hasFeature() --  Test si l'implémentation DOM implémente une fonctionnalité spécifique
DOMNamedNodeMap->getNamedItem() --  Retourne un noeud spécifié par nom nom
DOMNamedNodeMap->getNamedItemNS() --  Retourne un noeud spécifié par son nom local et son espace de nom
DOMNamedNodeMap->item() -- Retourne un noeud selon son index
DOMNode->appendChild() --  Ajoute un nouveau fils à la fin des fils
DOMNode->cloneNode() --  Clone un noeud
DOMNode->hasAttributes() --  Vérifie si le noeud possède un attribut
DOMNode->hasChildNodes() --  Vérifie si le noeud possède des enfants
DOMNode->insertBefore() --  Ajoute un nouveau fils à la fin des enfants
DOMNode->isSameNode() --  Indique si deux noeuds sont identiques
DOMNode->isSupported() --  Vérifie si la fonctionnalité est disponible pour la version spécifiée
DOMNode->lookupNamespaceURI() --  Retourne l'URI de l'espace de noms selon le préfixe
DOMNode->lookupPrefix() --  Retourne le préfixe de l'espace de noms selon l'URI de l'espace de noms
DOMNode->normalize() --  Normalise le noeud
DOMNode->removeChild() --  Supprime un fils de la liste des enfants
DOMNode->replaceChild() --  Remplace un fils
DOMNodelist->item() --  Retourne un noeud spécifié par son index
DOMProcessingInstruction->__construct() --  Crée un nouvel objet DOMProcessingInstruction
DOMText->__construct() --  Crée un nouvel objet DOMText
DOMText->isWhitespaceInElementContent() --  Indique si ce noeud de texte contient des espaces blancs
DOMText->splitText() --  Coupe le noeud en deux noeuds à l'endroit spécifié
DOMXPath->__construct() --  Crée un nouvel objet DOMXPath
DOMXPath->evaluate() --  Evalue une expression XPath donnée et retourne un résultat écrit si possible
DOMXPath->query() --  Evalue l'expression XPath donnée
DOMXPath->registerNamespace() --  Enregistre l'espace de noms avec l'objet DOMXPath
dom_import_simplexml --  Transforme un objet DOMElement en un objet SimpleXMLElement

Hosting by: Hurra Communications GmbH
Generated: 2007-01-26 18:02:18