Fonctions DOM XMLDOM XML
&reftitle.intro;
&warn.experimental;
L'extension DOM XML a été reprise en main en &php; 4.3.0 pour être
mieux compatible avec les standards DOM. L'extension contient encore
de vieilles fonctions, mais elles ne sont plus utilisées. En particulier,
les fonctions qui ne sont pas orientées objets ne doivent pas être
utilisées.
Cette extension vous permet de générer des documents XML avec
les API DOM. Elle fournit aussi une fonction domxml_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 DomDocument_dump_mem 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 DomDocument_create_text_node,
set_attribute, etc.
et finalement DomDocument_dump_mem.
¬e.pecl-php5;
Si vous avez besoin du support DOM XML avec &php; 5, vous pouvez utiliser l'extension
DOM.
&reftitle.required;
Cette extension utilise la bibliothèque
GNOME XML. Téléchargez là,
puis installez là. Vous aurez besoin de la version libxml-2.4.14
ou plus récent. Pour utiliser les fonctionnalités DOM XSLT
vous pouvez utiliser la bibliothèque
libxslt et les progrès
des EXSLT (&url.exslt;).
Téléchargez et installez ces bibliothèques si vous envisagez d'exploiter
ces fonctionnalités. Vous aurez besoin d'au moins libxslt-1.0.18.
&reference.domxml.configure;
Fonctions dépréciées
Il y a un groupe de fonctions qui ne sont pas compatibles avec les
standards DOM et qui ne devraient plus être utilisées. Ces fonctions sont
listées dans la table ci-dessous. La fonction
DomNode_append_child a vu son comportement changer.
Désormais, elle ajoute un fils et non pas un frère. Si cela
casse votre application, utilisez plutôt la fonction
DomNode_append_sibling, qui ne fait pas partie
des standards.
Fonctions abandonnées et leur remplacementAncienne fonctionNouvelle fonctionxmldocdomxml_open_memxmldocfiledomxml_open_filedomxml_new_xmldocdomxml_new_docdomxml_dump_memDomDocument_dump_memdomxml_dump_mem_fileDomDocument_dump_fileDomDocument_dump_mem_fileDomDocument_dump_fileDomDocument_add_rootDomDocument_create_element suivie de
DomNode_append_childDomDocument_dtdDomDocument_doctypeDomDocument_rootDomDocument_document_elementDomDocument_childrenDomNode_child_nodesDomDocument_imported_nodePas de remplacement.DomNode_add_childCréez un nouveau noeud avec
DomDocument_create_element puis ajoutez-le avec
DomNode_append_child.
DomNode_childrenDomNode_child_nodesDomNode_parentDomNode_parent_nodeDomNode_new_childCréez un nouveau noeud avec
DomDocument_create_element puis ajoutez-le avec
DomNode_append_child.
DomNode_set_contentCréez un nouveau noeud avec
DomDocument_create_text_node puis ajoutez-le avec
DomNode_append_child.
DomNode_get_contentLe contenu est juste un noeud de texte, et est accessible via
DomNode_child_nodes.
DomNode_set_contentLe contenu est juste un noeud de texte, et peut être ajouté avec
DomNode_append_child.
&reference.domxml.constants;
Classes
L'API de ce module suit le standard DOM niveau 2 aussi fidèlement
que possible. Par conséquent, l'API est totalement orientée objet.
C'est une bonne idée d'avoir les standards DOM disponibles sous la
main, lorsque vous utilisez ce module. Bien que cette API soit orientée
objet, il existe de nombreuses fonctions qui peuvent être appelées
d'une manière non objet, en passant l'objet à utiliser comme premier
argument de la fonction. Cest fonctions sont essentiellement conservées
pour assurer la compatibilité avec les extensions plus anciennes, et ne
doivent pas être utilisées.
Cette API diffère de l'API officielle DOM en deux points. Le premier est
que tous les attributs des classes sont implémentés comme des fonctions
du même nom. Le second est que les noms des fonctions suivent
les standards &php;. Cela signifie que la fonction DOM lastChild()
s'écrit en &php; last_child().
Ce module définit un grand nombre de classe, qui sont listés en
incluant leur méthodes dans les tables suivantes. Les classes ayant
un équivalent DOM sont nommées DOMxxx.
Liste de classesNom de la classeClasse parenteDomAttributeDomNodeDomCDataDomNodeDomCommentDomCData : DomNodeDomDocumentDomNodeDomDocumentTypeDomNodeDomElementDomNodeDomEntityDomNodeDomEntityReferenceDomNodeDomProcessingInstructionDomNodeDomTextDomCData : DomNodeParserActuellement, toujours appelée DomParserXPathContext
DomDocument class (DomDocument : DomNode)Nom de la méthodeNom de la fonctionRemarquesdoctypeDomDocument_doctypedocument_elemnentDomDocument_document_elementcreate_elementDomDocument_create_elementcreate_text_nodeDomDocument_create_text_nodecreate_commentDomDocument_create_commentcreate_cdata_sectionDomDocument_create_cdata_sectioncreate_processing_instructionDomDocument_create_processing_instructioncreate_attributeDomDocument_create_attributecreate_entity_referenceDomDocument_create_entity_referenceget_elements_by_tagnameDomDocument_get_elements_by_tagnameget_element_by_idDomDocument_get_element_by_iddump_memDomDocument_dump_memnot DOM standarddump_fileDomDocument_dump_filenot DOM standardhtml_dump_memDomDocument_html_dump_memNon standard DOMxpath_initxpath_initNon standard DOMxpath_new_contextxpath_new_contextNon standard DOMxptr_new_contextxptr_new_contextNon standard DOM
Classe DomElement (DomElement : DomNode)Nom de la méthodeNom de la fonctionRemarquestagnameDomElement_tagnameget_attributeDomElement_get_attributeset_attributeDomElement_set_attributeremove_attributeDomElement_remove_attributeget_attribute_nodeDomElement_get_attribute_nodeget_elements_by_tagnameDomElement_get_elements_by_tagnamehas_attributeDomElement_has_attribute
Classe DomNodeNom de la méthodeRemarquesDomNode_node_nameDomNode_node_valueDomNode_node_typeDomNode_last_childDomNode_first_childDomNode_child_nodesDomNode_previous_siblingDomNode_next_siblingDomNode_parent_nodeDomNode_owner_documentDomNode_insert_beforeDomNode_append_childDomNode_append_siblingNon standard DOM. Cette fonction émule le comportement précédent
de DomNode_append_child.DomNode_remove_childDomNode_has_child_nodesDomNode_has_attributesDomNode_clone_nodeDomNode_attributesDomNode_unlink_nodeNon standard DOMDomNode_replace_nodeNon standard DOMDomNode_set_contentNon standard DOM, deprecatedDomNode_get_contentNon standard DOM, deprecatedDomNode_dump_nodeNon standard DOMDomNode_is_blank_nodeNon standard DOM
Classe DomAttribute (DomAttribute : DomNode)Nom de la méthodeRemarquesnameDomAttribute_namevalueDomAttribute_valuespecifiedDomAttribute_specified
Classe DomProcessingInstruction (DomProcessingInstruction : DomNode)Nom de la méthodeNom de la fonctionRemarquestargetDomProcessingInstruction_targetdataDomProcessingInstruction_data
Classe ParserNom de la méthodeNom de la fonctionRemarquesadd_chunkParser_add_chunkendParser_end
Classe XPathContextNom de la méthodeNom de la fonctionRemarquesevalXPathContext_evaleval_expressionXPathContext_eval_expressionregister_nsXPathContext_register_ns
Classe DomDocumentType (DomDocumentType : DomNode)Nom de la méthodeNom de la fonctionRemarquesnameDomDocumentType_nameentitiesDomDocumentType_entitiesnotationsDomDocumentType_notationspublic_idDomDocumentType_public_idsystem_idDomDocumentType_system_idinternal_subsetDomDocumentType_internal_subset
Les classes DomDtd sont dérivées de DomNode. DomComment est dérivée de DomCData.
&reftitle.examples;
De nombreux exemples de cette partie requièrent une chaîne XML.
Au lieu de répéter la chaîne dans tous les exemples, elle sera
mise dans un fichier, qui sera inclus dans tous les exemples.
Ce fichier inclus sera utilisé dans les exemples suivants dans
cette section. Alternativement, vous pouvez créer un document XML et le
lire avec la fonction DomDocument_open_file.
Fichier d'inclusion example.inc pour la chaîne XML d'exemple
]>
Title
&sp;
a1b1c1a2c2a3b3c3";
?>
]]>
&reference.domxml.functions;