DOMElement::getElementsByTagNameNS

(PHP 5, PHP 7, PHP 8)

DOMElement::getElementsByTagNameNSObtém elementos por namespaceURI e localName

Descrição

public DOMElement::getElementsByTagNameNS(?string $namespace, string $localName): DOMNodeList

Esta função busca todos os elementos descendentes com um determinado localName e namespace.

Parâmetros

namespace

O URI do namespace dos elementos a serem correspondidos. O valor especial "*" corresponde a todos os namespaces. Passar null corresponde ao namespace vazio.

localName

O nome local dos elementos a serem correspondidos. O valor especial "*" corresponde a todos os nomes locais.

Valor Retornado

Esta função retorna uma nova instância da classe DOMNodeList de todos os elementos correspondentes na ordem em que são encontrados em uma travessia em pré-ordem desta árvore de elementos.

Registro de Alterações

Versão Descrição
8.0.3 namespace é anulável agora.

Veja Também

add a note add a note

User Contributed Notes 1 note

up
0
spam at chovy dot com
14 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:

<?php

function strip_default_ns( $xml = null, $ns_uri = 'http://example.com/XML-Foo' ) {
   
$ns_local = '';
   
$ns_tag = '*';
   
    if ( empty(
$xml) ) return false;
   
   
//remove document namespace
   
$dom = new DOMDocument();
   
$dom->loadXML($xml);
   
$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);
    }

    return
$dom->saveXML();
}

$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