DOM XML functions DOM XML
Introduction &warn.experimental; The domxml extension has been overhauled in PHP Version 4.3.0 in favour of a better compliance of the DOM standard. The extension still contains many old functions, but they should not be used anymore. Especially those non object oriented functions should be avoided. The extension allows you to operate on an XML document with the DOM API. It also provides a function domxml_xmltree to turn the complete XML document into a tree of PHP objects. Currently this tree should be considered read-only - you can modify it but this would not make any sense since DomDocument_dump_mem cannot be applied to it. Therefore, if you want to read an XML file and write a modified version use the DomDocument_create_element, DomDocument_create_text, set_attribute, etc. and finally DomDocument_dump_mem functions.
Requirements This extension is only available if PHP was configured with , using the GNOME xml library. You will need at least libxml-2.2.7
Deprecated functions There a quite some functions which do not fit into the DOM standard and should not be used anymore as listed in the following table. The function DomNode_append_child has changed its behaviour. It now actually adds a child and not a sibling. If this breaks your application use the non DOM function DomNode_append_sibling. Deprecated functions and its replacements Old function New function xmldoc domxml_open_mem xmldocfiel 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 followed by DomNode_append_child DomDocument_dtd DomDocument_doctype DomDocument_root DomDocument_document_element DomDocument_children DomNode_child_nodes DomDocument_imported_node No replacement. DomNode_add_child Create a new node with e.g. DomDocument_create_element und add it with DomNode_append_child. DomNode_children DomNode_child_nodes DomNode_parent DomNode_parent_node DomNode_new_child Create a new node with e.g. DomDocument_create_element und add it with DomNode_append_child. DomNode_set_content Create a new node with e.g. DomDocument_create_text_node und add it with DomNode_append_child. DomNode_get_content Content is just a text node and can be accessed with DomNode_child_nodes. DomNode_set_content Content is just a text node and can be added with DomNode_append_child.
Constants This module defines the following constants: XML constants Constant Value Description XML_ELEMENT_NODE 1 Node is an element XML_ATTRIBUTE_NODE 2 Node is an attribute XML_TEXT_NODE 3 Node is a piece of text XML_CDATA_SECTION_NODE 4 XML_ENTITY_REF_NODE 5 XML_ENTITY_NODE 6 Node is an entity like   XML_PI_NODE 7 Node is a processing instruction XML_COMMENT_NODE 8 Node is a comment XML_DOCUMENT_NODE 9 Node is a document XML_DOCUMENT_TYPE_NODE 10 XML_DOCUMENT_FRAG_NODE 11 XML_NOTATION_NODE 12 XML_GLOBAL_NAMESPACE 1 XML_LOCAL_NAMESPACE 2
Classes The API of the module follows the DOM Level 2 standard as close as possible. Consequently the API is fully object oriented. It is a good idea to have the DOM standard available when using this module. Though the API is object oriented there are many functions which can be called in a non-object oriented way by passing the object to operate on as the first argument. These function are mainly to retain compatibilty to older versions of the extension but are not encouraged to use anymore in new developments. This API differs from the official DOM API in two points. First, all class attributes are implemented as functions with the same name and secondly the function names follow the PHP naming convention. This means that a DOM function lastChild() will be written as last_child(). This module defines a number of classes, which are listed — including their method — in the following tables. Classes with an equivalent in the DOM Standard are named DOMxxx. List of classes Class name Parent classes DomAttribute DomNode DomCData DomNode DomComment DomCData : DomNode DomDocument DomNode DomDocumentType DomNode DomElement DomNode DomEntity DomNode DomEntityReference DomNode DomProcessingInstruction DomNode DomText DomCData : DomNode Parser Currently still called DomParser XPathContext
DomDocument class (DomDocument : DomNode) Method name Function name Remark doctype DomDocument_doctype document_elemnent 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 not DOM standard dump_file DomDocument_dump_file not DOM standard html_dump_mem DomDocument_html_dump_mem not DOM standard xpath_init xpath_init not DOM standard xpath_new_context xpath_new_context not DOM standard xptr_new_context xptr_new_context not DOM standard
DomElement class (DomElement : DomNode) Method name Function name Remark 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
DomNode class Method name Remark 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 Not in DOM standard. This function emulates the former behaviour of DomNode_append_child. DomNode_remove_child DomNode_has_child_nodes DomNode_has_attributes DomNode_clone_node DomNode_attributes DomNode_unlink_node Not in DOM standard DomNode_replace_node Not in DOM standard DomNode_set_content Not in DOM standard, deprecated DomNode_get_content Not in DOM standard, deprecated DomNode_dump_node Not in DOM standard DomNode_is_blank_node Not in DOM standard
DomAttribute class (DomAttribute : DomNode) Method name Remark name DomAttribute_name value DomAttribute_value specified DomAttribute_specified
DomProcessingInstruction class (DomProcessingInstruction : DomNode) Method name Function name Remark target DomProcessingInstruction_target data DomProcessingInstruction_data
Parser class Method name Function name Remark add_chunk Parser_add_chunk end Parser_end
XPathContext class Method name Function name Remark eval XPathContext_eval eval_expression XPathContext_eval_expression register_ns XPathContext_register_ns
DomDocumentType class (DomDocumentType : DomNode) Method name Function name Remark name DomDocumentType_name entities DomDocumentType_entities notations DomDocumentType_notations public_id DomDocumentType_public_id system_id DomDocumentType_system_id internal_subset DomDocumentType_internal_subset
The classes DomDtd is derived from DomNode. DomComment is derived from DomCData
Examples Many examples in this reference require a xml string. Instead of repeating this string in any example it will be put into a file and be included by each example. This include file is shown in the following example section. You could also create an xml document read it with DomDocument_open_file. Include file example.inc with xml string ]> Title &sp; a1b1c1 a2c2 a3b3c3 "; ?> ]]>
&reference.domxml.functions;