XX. DOM XML functions

This documentation is not finished yet. Don't start to translate it or use it as a programming reference (steinm@php.net).

These functions are only available if PHP was configured with --with-dom=[DIR], using the GNOME xml library. You will need at least libxml-2.2.7 These functions have been added in PHP 4.

The extension allows you to operate on an XML document with the DOM API. It also provides a function 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 dumpmem() cannot be applied to it. Therefore, if you want to read an XML file and write a modified version use the add_node(), set_attribute(), etc. and finally dumpmem() functions.

This module defines the following constants:

Table 1. XML constants

ConstantValueDescription
XML_ELEMENT_NODE1Node is an element
XML_ATTRIBUTE_NODE2Node is an attribute
XML_TEXT_NODE3Node is a piece of text
XML_CDATA_SECTION_NODE4 
XML_ENTITY_REF_NODE5 
XML_ENTITY_NODE6Node is an entity like  
XML_PI_NODE7Node is a processing instruction
XML_COMMENT_NODE8Node is a comment
XML_DOCUMENT_NODE9Node is a document
XML_DOCUMENT_TYPE_NODE10 
XML_DOCUMENT_FRAG_NODE11 
XML_NOTATION_NODE12 
XML_GLOBAL_NAMESPACE1 
XML_LOCAL_NAMESPACE2 

Each function in this extension can be used in two ways. In a non-object oriented way by passing the object to apply the function to as a first argument, or in an object oriented way by calling the function as a method of an object. This documentation describes the non-object oriented functions, though you get the object methods by skipping the prefix "domxml_".

This module defines a number of classes, which are listed — including their properties and method — in the following table.

Table 2. DomDocument class (methods)

Method nameFunction nameDescription
rootdomxml_root() 
childrendomxml_children() 
add_rootdomxml_add_root() 
dtddomxml_intdtd() 
dumpmemdomxml() 
xpath_initxpath_init 
xpath_new_contextxpath_new_context 
xptr_new_contextxptr_new_context 

Table 3. DomDocument class (attributes)

NameTypeDescription
docclass DomDocumentThe object itself
namestring 
urlstring 
versionstringVersion of XML
encodingstring 
standalonelong1 if the file is a standalone version
typelongOne of the constants in table ...
compressionlong1 if the file is compressed
charsetlong 

Table 4. DomNode class (methods)

NamePHP nameDescription
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 

Table 5. DomNode class (attributes)

NameTypeDescription
nodeclass DomNodeThe object itself
typelong 
namestring 
contentstring 

Table of Contents
xmldoc — Creates a DOM object of an XML document
xmldocfile — Creates a DOM object from XML file
xmltree — Creates a tree of PHP objects from XML document
domxml_root — Returns root element node
domxml_add_root — Adds a further root node
domxml_dumpmem — Dumps the internal XML tree back into a string
domxml_attributes — Returns an array of attributes of a node
domxml_get_attribute — Returns a certain attribute of a node
domxml_set_attribute
domxml_children — Returns children of a node or document
domxml_new_child — Adds new child node
domxml_new_xmldoc — Creates new empty XML document
xpath_new_context — Creates new xpath context
xpath_eval — Evaluates an xpath expression