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.
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(). |
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.
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 |
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 |
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() |
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 |
Nom de la méthode | Remarques | |
---|---|---|
name | DomAttribute_name() | |
value | DomAttribute_value() | |
specified | DomAttribute_specified() |
Nom de la méthode | Nom de la fonction | Remarques |
---|---|---|
target | DomProcessingInstruction_target() | |
data | DomProcessingInstruction_data() |
Nom de la méthode | Nom de la fonction | Remarques |
---|---|---|
add_chunk | Parser_add_chunk() | |
end | Parser_end() |
Nom de la méthode | Nom de la fonction | Remarques |
---|---|---|
eval | XPathContext_eval() | |
eval_expression | XPathContext_eval_expression() | |
register_ns | XPathContext_register_ns() |
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.
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>";
?>