DOM XML
PHP Manual

Fonctions DOM XML

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 remplacement
Ancienne fonction Nouvelle fonction
xmldoc domxml_open_mem()
xmldocfile domxml_open_file()
domxml_new_xmldoc domxml_new_doc()
domxml_dump_mem DomDocument_dump_mem()
domxml_dump_mem_file DomDocument_dump_file()
DomDocument_dump_mem_file DomDocument_dump_file()
DomDocument_add_root DomDocument_create_element() suivie de DomNode_append_child()
DomDocument_dtd DomDocument_doctype()
DomDocument_root DomDocument_document_element()
DomDocument_children DomNode_child_nodes()
DomDocument_imported_node Pas de remplacement.
DomNode_add_child Créez un nouveau noeud avec DomDocument_create_element() puis ajoutez-le avec DomNode_append_child().
DomNode_children DomNode_child_nodes()
DomNode_parent DomNode_parent_node()
DomNode_new_child Créez un nouveau noeud avec DomDocument_create_element() puis ajoutez-le avec DomNode_append_child().
DomNode_set_content Créez un nouveau noeud avec DomDocument_create_text_node() puis ajoutez-le avec DomNode_append_child().
DomNode_get_content Le contenu est juste un noeud de texte, et est accessible via DomNode_child_nodes().
DomNode_set_content Le contenu est juste un noeud de texte, et peut être ajouté avec DomNode_append_child().

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. Ces 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ées 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 préfixées par DOM.

Liste de classes
Nom de la classe Classe parente
DomAttribute DomNode
DomCData DomNode
DomComment DomCData : DomNode
DomDocument DomNode
DomDocumentType DomNode
DomElement DomNode
DomEntity DomNode
DomEntityReference DomNode
DomProcessingInstruction DomNode
DomText DomCData : DomNode
Parser Actuellement, toujours appelée DomParser
XPathContext  

DomDocument class (DomDocument : DomNode)
Nom de la méthode Nom de la fonction Remarques
doctype DomDocument_doctype()  
document_element DomDocument_document_element()  
create_element DomDocument_create_element()  
create_text_node DomDocument_create_text_node()  
create_comment DomDocument_create_comment()  
create_cdata_section DomDocument_create_cdata_section()  
create_processing_instruction DomDocument_create_processing_instruction()  
create_attribute DomDocument_create_attribute()  
create_entity_reference DomDocument_create_entity_reference()  
get_elements_by_tagname DomDocument_get_elements_by_tagname()  
get_element_by_id DomDocument_get_element_by_id()  
dump_mem DomDocument_dump_mem() Non standard DOM
dump_file DomDocument_dump_file() Non standard DOM
html_dump_mem DomDocument_html_dump_mem() Non standard DOM
xpath_init xpath_init Non standard DOM
xpath_new_context xpath_new_context Non standard DOM
xptr_new_context xptr_new_context Non standard DOM

Classe DomElement (DomElement : DomNode)
Nom de la méthode Nom de la fonction Remarques
tagname DomElement_tagname()  
get_attribute DomElement_get_attribute()  
set_attribute DomElement_set_attribute()  
remove_attribute DomElement_remove_attribute()  
get_attribute_node DomElement_get_attribute_node()  
set_attribute_node DomElement_set_attribute_node()  
get_elements_by_tagname DomElement_get_elements_by_tagname()  
has_attribute DomElement_has_attribute()  

Classe DomNode
Nom de la méthode Remarques
DomNode_node_name()  
DomNode_node_value()  
DomNode_node_type()  
DomNode_last_child()  
DomNode_first_child()  
DomNode_child_nodes()  
DomNode_previous_sibling()  
DomNode_next_sibling()  
DomNode_parent_node()  
DomNode_owner_document()  
DomNode_insert_before()  
DomNode_append_child()  
DomNode_append_sibling() Non standard DOM. Cette fonction émule le comportement précédent de DomNode_append_child().
DomNode_remove_child()  
DomNode_has_child_nodes()  
DomNode_has_attributes()  
DomNode_clone_node()  
DomNode_attributes()  
DomNode_unlink_node() Non standard DOM
DomNode_replace_node() Non standard DOM
DomNode_set_content() Non standard DOM, déprécié
DomNode_get_content() Non standard DOM, déprécié
DomNode_dump_node() Non standard DOM
DomNode_is_blank_node() Non standard DOM

Classe DomAttribute (DomAttribute : DomNode)
Nom de la méthode Remarques
name DomAttribute_name()  
value DomAttribute_value()  
specified DomAttribute_specified()  

Classe DomProcessingInstruction (DomProcessingInstruction : DomNode)
Nom de la méthode Nom de la fonction Remarques
target DomProcessingInstruction_target()  
data DomProcessingInstruction_data()  

Classe Parser
Nom de la méthode Nom de la fonction Remarques
add_chunk Parser_add_chunk()  
end Parser_end()  

Classe XPathContext
Nom de la méthode Nom de la fonction Remarques
eval XPathContext_eval()  
eval_expression XPathContext_eval_expression()  
register_ns XPathContext_register_ns()  

Classe DomDocumentType (DomDocumentType : DomNode)
Nom de la méthode Nom de la fonction Remarques
name DomDocumentType_name()  
entities DomDocumentType_entities()  
notations DomDocumentType_notations()  
public_id DomDocumentType_public_id()  
system_id DomDocumentType_system_id()  
internal_subset DomDocumentType_internal_subset()  

Les classes DomDtd sont dérivées de DomNode. DomComment est dérivée de DomCData.

Exemples

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().

Exemple #1 Fichier d'inclusion example.inc pour la chaîne XML d'exemple

<?php
$xmlstr 
"<?xml version='1.0' standalone='yes'?>
<!DOCTYPE chapter SYSTEM '/share/sgml/Norman_Walsh/db3xml10/db3xml10.dtd'
[ <!ENTITY sp \"spanish\">
]>
<!-- lsfj  -->
<chapter language='en'><title language='en'>Title</title>
 <para language='ge'>
  &sp;
  <!-- comment -->
  <informaltable ID='findme' language='&sp;'>
   <tgroup cols='3'>
    <tbody>
     <row><entry>a1</entry><entry
morerows='1'>b1</entry><entry>c1</entry></row>
<row><entry>a2</entry><entry>c2</entry></row>
     <row><entry>a3</entry><entry>b3</entry><entry>c3</entry></row>
    </tbody>
   </tgroup>
  </informaltable>
 </para>
</chapter>"
;
?>

Sommaire


DOM XML
PHP Manual