(PHP 5, PHP 7)

DOMElement::getElementsByTagNameNSGet elements by namespaceURI and localName


public DOMNodeList DOMElement::getElementsByTagNameNS ( string $namespaceURI , string $localName )

This function fetch all the descendant elements with a given localName and namespaceURI.



The namespace URI.


The local name. Use * to return all elements within the element tree.

Valor Retornado

This function returns a new instance of the class DOMNodeList of all matched elements in the order in which they are encountered in a preorder traversal of this element tree.

Veja Também

add a note add a note

User Contributed Notes 1 note

spam at chovy dot com
6 years ago
I had some difficulty stripping all default NS attributes for an ns-uri in one shot, the following will work though...first strip the documentElement namespace, then getElementsByTagNameNS() -- the documentation should reflect that the 2nd argument is actually the name of the tag, not the local namespace prefix as I first expected:


function strip_default_ns( $xml = null, $ns_uri = '' ) {
$ns_local = '';
$ns_tag = '*';
    if ( empty(
$xml) ) return false;
//remove document namespace
$dom = new DOMDocument();
$dom->documentElement->removeAttributeNS($ns_uri, $ns_local);
//strip element namespaces
foreach ( $dom->getElementsByTagNameNS($ns_uri, $ns_tag) as $elem ) {
$elem->removeAttributeNS($ns_uri, $ns_local);


$stripped_xml = strip_default_ns($the_xml);


$stripped_xml can now take advantage of running XPath queries on it for the NULL namespace.
To Top