Forum und email

Fonctions DOM

Introduction

L'extension DOM vous permet d'utiliser des documents XML via l'API DOM de PHP 5.

Pour PHP 4, utilisez l'extension DOM XML.

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 3 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

Nom Type Lecture seule Description
name string oui Le nom de l'attribut
ownerElement DOMElement oui L'élément qui contient l'attribut
schemaTypeInfo bool oui Pas encore implémenté, retourne toujours NULL
specified bool oui Pas encore implémenté, retourne toujours NULL
value string non La valeur de l'attribut

DOMCharacterData

Étend DOMNode.

Méthodes

Propriétés

Nom Type Lecture seule Description
data string non Le contenu du noeud
length int oui La longueur du contenu

DOMComment

Étend DOMCharacterData.

Constructeur

DOMDocument

Étend DOMNode.

Constructeur

Méthodes

Propriétés

Nom Type Lecture seule Description
actualEncoding string oui  
config DOMConfiguration oui  
doctype DOMDocumentType oui La déclaration de type de document associée avec ce document.
documentElement DOMElement oui 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.
documentURI string non La localisation du document ou NULL si non défini.
encoding string non  
formatOutput bool non  
implementation DOMImplementation oui L'objet DOMImplementation qui représente ce document.
preserveWhiteSpace bool non Ne pas supprimer les espaces redondants. Vaut TRUE par défaut.
recover bool non  
resolveExternals bool non Définir à TRUE pour charger les entités externes depuis une déclaration doctype. Ceci est utile pour inclure des entités correspondant à des caractères dans vos documents XML.
standalone bool non  
strictErrorChecking bool non Envoie une DOMException en cas d'erreur. Vaut par défaut TRUE.
substituteEntities bool non  
validateOnParse bool non Charge et valide à nouveau la DTD. Vaut par défaut FALSE.
version string non  
xmlEncoding string oui 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.
xmlStandalone bool non 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é.
xmlVersion string non 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".

DOMDocumentFragment

Étend DOMNode.

Méthodes

DOMDocumentType

Étend DOMNode

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

Propriétés

Nom Type Lecture seule Description
publicId string oui L'identifiant public du sous-ensemble externe.
systemId string oui L'identifiant système du sous-ensemble externe. Il peut être une URI absolue ou non.
name string oui Le nom de la DTD ; i.e. le nom suivant immédiatement le mot clé DOCTYPE
entities DOMNamedNodeMap oui Un DOMNamedNodeMap contenant les entités générales, externes et internes, déclarées dans la DTD.
notations DOMNamedNodeMap oui Un DOMNamedNodeMap contenant les notations déclarées dans la DTD.
internalSubset string oui 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

Nom Type Lecture seule Description
schemaTypeInfo bool oui Pas encore implémenté, retourne toujours NULL
tagName string oui Le 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

Nom Type Lecture seule Description
publicId string oui L'identifiant public associé à l'entité si spécifiée, NULL sinon.
systemId string oui L'identifiant système associé à l'entité si spécifiée, NULL sinon. Ceci peut être une URI absolue ou non.
notationName string oui Pour les entités non-analysées, le nom de la notation pour cette entité. Pour les entités analysées, ceci vaut NULL.
actualEncoding string non 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.
encoding string oui 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.
version string oui 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 Les exceptions.

Propriétés

Nom Type Lecture seule Description
code int oui Un 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épendantes de toute instance du model objet du document.

Constructeur

Méthodes

DOMNamedNodeMap

Méthodes

DOMNode

Méthodes

Propriétés

Nom Type Lecture seule Description
nodeName string oui Retourne le nom le plus précis possible pour le type de noeud courant
nodeValue string non La valeur de ce noeud, dépendant de son type.
nodeType int oui Récupère le type du noeud. Une des constantes XML_xxx_NODE prédéfinies
parentNode DOMNode oui Le parent de ce noeud
childNodes DOMNodeList oui Un DOMNodeList qui contient tous les enfants de ce noeud. S'il n'y a pas d'enfant, ce sera un DOMNodeList vide.
firstChild DOMNode oui Le premier enfant de ce noeud. S'il n'y pas de tel noeud, ceci retourne NULL.
lastChild DOMNode oui Le dernier enfant de ce noeud. S'il n'y a pas de tel noeud, ceci retourne NULL.
previousSibling DOMNode oui Le noeud précédent immédiatement ce noeud. S'il n'y a pas de tel noeud, ceci retourne NULL.
nextSibling DOMNode oui Le noeud suivant immédiatement ce noeud. S'il n'y a pas de tel noeud, ceci retourne NULL.
attributes DOMNamedNodeMap oui Un DOMNamedNodeMap contenant les attributs de ce noeud (si c'est un DOMElement) ou NULL sinon.
ownerDocument DOMDocument oui Un objet DOMDocument associé à ce noeud.
namespaceURI string oui L'URI de l'espace de noms de ce noeud, ou NULL si non spécifié.
prefix string non Le préfixe de l'espace de noms de ce noeud, ou NULL si non spécifié.
localName string oui Retourne la partie locale du nom qualifié de ce noeud.
baseURI string oui La base absolue de l'URI de ce noeud ou NULL si l'implémentation n'est pas arrivée à obtenir une URI absolue.
textContent string non Cet attribut retourne le contenu texte de ce noeud et ses descendants.

DOMNodeList

Méthodes

Propriétés

Nom Type Lecture seule Description
length int oui 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

Nom Type Lecture seule Description
publicId string oui  
systemId string oui  

DOMProcessingInstruction

Étend DOMNode.

Constructeur

Propriétés

Nom Type Lecture seule Description
target string oui  
data string non  

DOMText

Étend DOMCharacterData.

Constructeur

Méthodes

Propriétés

Nom Type Lecture seule Description
wholeText string oui  

DOMXPath

Constructeur

Méthodes

Propriétés

Nom Type Lecture seule Description
document DOMDocument    

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 :

Example#1 chapter.xml

<?xml version="1.0" encoding="iso-8859-1"?>
<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN"
 "https://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.

Constantes XML
Constante Valeur Description
XML_ELEMENT_NODE (entier) 1 Le noeud est un DOMElement
XML_ATTRIBUTE_NODE (entier) 2 Le noeud est un DOMAttr
XML_TEXT_NODE (entier) 3 Le noeud est un DOMText
XML_CDATA_SECTION_NODE (entier) 4 Le noeud est un DOMCharacterData
XML_ENTITY_REF_NODE (entier) 5 Le noeud est un DOMEntityReference
XML_ENTITY_NODE (entier) 6 Le noeud est un DOMEntity
XML_PI_NODE (entier) 7 Le noeud est un DOMProcessingInstruction
XML_COMMENT_NODE (entier) 8 Le noeud est un DOMComment
XML_DOCUMENT_NODE (entier) 9 Le noeud est un DOMDocument
XML_DOCUMENT_TYPE_NODE (entier) 10 Le noeud est un DOMDocumentType
XML_DOCUMENT_FRAG_NODE (entier) 11 Le noeud est un DOMDocumentFragment
XML_NOTATION_NODE (entier) 12 Le 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  
Constantes DOMException
Constante Valeur Description
DOM_INDEX_SIZE_ERR (entier) 1 Si l'index ou la taille sont négatifs ou plus grands 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) 3 Si un noeud est inséré à un endroit non autorisé
DOM_WRONG_DOCUMENT_ERR (entier) 4 Si 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 faite de modifier un objet où les modifications ne sont pas autorisées.
DOM_NOT_FOUND_ERR (entier) 8 Si une tentative est faite 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 faite d'ajouter un attribut qui est déjà utilisé autre part.
DOM_INVALID_STATE_ERR (entier) 11 Si une tentative est faite 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 faite de modifier le type d'un objet fondamental.
DOM_NAMESPACE_ERR (entier) 14 Si une tentative est faite 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 of Contents