DOMElement::getElementsByTagNameNS

(PHP 5, PHP 7, PHP 8)

DOMElement::getElementsByTagNameNSRécupère les éléments par leur espace de noms et leur localName

Description

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

Cette fonction récupère tous les éléments descendants avec un nom local localName et un espace de noms namespace donnés.

Liste de paramètres

namespace

L'URI de l'espace de noms des éléments à chercher. La valeur spéciale "*" représente tous les espaces de noms. Passer null représente l'espace de noms vide.

localName

Le nom local des éléments à chercher. La valeur spéciale "*" représente tous les noms locaux.

Valeurs de retour

Cette fonction retourne un nouvel objet de la classe DOMNodeList contenant tous les éléments correspondants dans l'ordre dans lesquels ils sont rencontrés lors du parcours de l'arbre de cet élément.

Historique

Version Description
8.0.3 namespace est désormais nullable.

Voir aussi

  • DOMElement::getElementsByTagNameNS()

add a note add a note

User Contributed Notes 1 note

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