PHP registerXPathNamespace() Function

The registerXPathNamespace() function creates a namespace context for the next XPath query.

This function is useful if a namespace prefix is changed in an XML document. The registerXPathNamespace() function will create a prefix for specified namespace, so that the affected XML nodes can be accessed without altering the application code too much.

public bool SimpleXMLElement::registerXPathNamespace ( string $prefix , string $ns )

Creates a prefix/ns context for the next XPath query. In particular, this is helpful if the provider of the given XML document alters the namespace prefixes. registerXPathNamespace will create a prefix for the associated namespace, allowing one to access nodes in that namespace without the need to change code to allow for the new prefixes dictated by the provider.

Example -

Example #1 Setting a namespace prefix to use in an XPath query

The above example will output:

Chapter 1
Chapter 2

Notice how the XML document shown in the example sets a namespace with a prefix of chap. Imagine that this document (or another one like it) may have used a prefix of c in the past for the same namespace. Since it has changed, the XPath query will no longer return the proper results and the query will require modification. Using registerXPathNamespace avoids future modification of the query even if the provider changes the namespace prefix.

ParameterDescription
prefixThe namespace prefix to use in the XPath query for the namespace given in ns.
nsThe namespace to use for the XPath query. This must match a namespace in use by the XML document or the XPath query using prefix will not return any results.

Returns TRUE on success or FALSE on failure.