XXIV. DOM XML

Note importante : cette documentation est en cours de rédaction, et n'est pas encore finie. Elle souffre naturellement d'un manque de détails et de relecture. Soyez en prévenu. (Damien Seguy).

Ces fonctions ne sont disponibles que si PHP a été configuré avec l'option --with-dom=[DIR], et utilise la librairie GNOME xml library. Vous aurez aussi besoin de la librairie libxml-2.2.7 (la version beta ne fonctionne pas). Ces fonctions ont été ajoutées en PHP 4.

Cette extension vous permet de générer des documents XML avec les API DOM. Elle fournit aussi une fonction xmltree() qui transforme un fichier XML en tableau PHP. Actuellement, ce tableau est accessible uniquement en lecture. Cela ne siginifie pas que vous ne pouvez pas le modifier, mais cela n'aurait aucun sens car domxml_dumpmem() ne pourra pas prendre ces modifications en considération. Par conséquent, si vous voulez lire un fichier XML et écrire sa version modifiée, utilisez les fonctions domxml_add_node(), domxml_set_attribute(), etc... et finalement domxml_dumpmem().

Ce module définit les constantes suivantes :

Tableau 1. Constantes XML

ConstanteValeurDescription
XML_ELEMENT_NODE1Le noeud est un élément
XML_ATTRIBUTE_NODE2Le noeud est un attribut
XML_TEXT_NODE3Le noeud est un texte
XML_CDATA_SECTION_NODE4 
XML_ENTITY_REF_NODE5 
XML_ENTITY_NODE6Le noeud est une entité telle que  
XML_PI_NODE7Le noeud est une instruction
XML_COMMENT_NODE8Le noeud est un commentaire
XML_DOCUMENT_NODE9Le noeud est un document
XML_DOCUMENT_TYPE_NODE10 
XML_DOCUMENT_FRAG_NODE11 
XML_NOTATION_NODE12 
XML_GLOBAL_NAMESPACE1 
XML_LOCAL_NAMESPACE2 

Chaque fonction de cette extension peut être utilisée de deux manières différentes. Dans un contexte procédural, il faut passer l'objet en premier argument; dans un contexte objet, vous pouvez appeler la fonction comme une méthode de cet objet. Cette documentation présente les fonctions dans leur contexte procédural. Vous pouvez connaître la méthode objet en supprimant le préfixe "domxml_". Les tables suivantes listes toutes les classes, leurs attributs et leurs méthodes.

Ce module définit un ensemble de classes, qui sont listées ci-dessous (y compris leur attributs et leur méthodes).

Tableau 2. classe DomDocument (méthodes)

Nom de la méthodeNom de la fonctionDescription
rootdomxml_root() 
childrendomxml_children() 
add_rootdomxml_add_root() 
dtddomxml_intdtd() 
dumpmemdomxml_dumpmem() 
xpath_initxpath_init 
xpath_new_contextxpath_new_context 
xptr_new_contextxptr_new_context 

Tableau 3. Classe DomDocument (attributs)

NomTypeDescription
docclass DomDocumentL'objet lui-même
namestring 
urlstring 
versionstringVersion de XML
encodingstring 
standalonelong1 si le fichier est complet
typelongUne des constantes de la table ...
compressionlong1 si le fichier est compressé
charsetlong 

Tableau 4. classe DomNode (méthodes)

NomNom en PHPDescription
lastchilddomxml_last_child() 
childrendomxml_children() 
parentdomxml_parent() 
new_childdomxml_new_child() 
get_attributedomxml_get_attribute() 
set_attributedomxml_set_attribute() 
attributesdomxml_attributes() 
nodedomxml_node() 
set_content()domxml_set_content 

Tableau 5. classe DomNode (attributs)

NomTypeDescription
nodeclass DomNodeL'objet lui-même
typelong 
namestring 
contentstring 

Table des matières
xmldoc -- Crée un objet DOM pour un document XML.
xmldocfile -- Crée un objet DOM à partir d'un fichier XML
xmltree --  Crée un arbre d'objet PHP, à partir d'un document XML.
domxml_root --  Retourne l'élément racine
domxml_add_root --  Ajoute une autre racine
domxml_dumpmem --  Ecrit le document XML interne dans une chaîne
domxml_attributes --  Retourne les attributs d'un noeud
domxml_get_attribute --  Retourne un attribut d'un noeud
domxml_set_attribute --  Modifie un attribut
domxml_children --  Retourne les fils d'un noeud
domxml_new_child --  Ajoute un nouveau fils
domxml_new_xmldoc --  Crée un document XML vide
xpath_new_context --  Crée un nouveau contexte xpath
xpath_eval --  Evalue une expression xpath