La función DOMElement::getElementsByTagNameNS() es una función incorporada en PHP que se utiliza para obtener todos los elementos descendientes con un nombre local y una URI de espacio de nombres determinados.
Sintaxis:
DOMNodeList DOMElement::getElementsByTagNameNS( string $namespaceURI, string $localName )
Parámetros: esta función acepta dos parámetros, como se mencionó anteriormente y se describe a continuación:
- $namespaceURI: Especifica la URI del espacio de nombres.
- $localName: Especifica el nombre local.
Valor de retorno: esta función devuelve un valor de DOMNodeList que contiene todos los elementos coincidentes en el orden en que se encuentran en un recorrido de orden previo de este árbol de elementos.
Los siguientes programas ilustran la función DOMElement::getElementsByTagNameNS() en PHP:
Programa 1:
<?php // Create a new DOMDocument $dom = new DOMDocument(); // Load the XML $dom->loadXML("<?xml version=\"1.0\"?> <root> <div xmlns:x=\"my_namespace\"> <x:h1 x:style=\"color:red;\"> Hello, this is my red heading. </x:h1> <x:h1 x:style=\"color:green;\"> Hello, this is my green heading. </x:h1> <x:h1 x:style=\"color:blue;\"> Hello, this is my blue heading. </x:h1> </div> <div xmlns:y=\"another_namespace\"> <y:h1 y:style=\"color:red;\"> Hello, this is my new red heading. </y:h1> <y:h1 y:style=\"color:green;\"> Hello, this is my new green heading. </y:h1> <y:h1 y:style=\"color:blue;\"> Hello, this is my new blue heading. </y:h1> </div> </root>"); // Get the elements with h1 tag from // specific namespace $nodeList = $dom->getElementsByTagNameNS( 'my_namespace', 'h1'); foreach ($nodeList as $node) { echo $node->getAttribute('x:style') . '<br>'; } ?>
Producción:
color:red;
color:green;
color:blue;
Programa 2:
<?php // Create a new DOMDocument $dom = new DOMDocument(); // Load the XML $dom->loadXML("<?xml version=\"1.0\"?> <root> <div xmlns:x=\"my_namespace\"> <x:p>HELLO.</x:p> <x:p>NEW.</x:p> <x:p>WORLD.</x:p> </div> <div xmlns:y=\"g4g_namespace\"> <y:p>GEEKS</y:p> <y:p>FOR</y:p> <y:p>GEEKS</y:p> </div> </root>"); // Get the elements $nodeList = $dom->getElementsByTagNameNS( 'g4g_namespace', 'p'); foreach ($nodeList as $node) { echo $node->textContent . '<br>'; } ?>
Producción:
GEEKS
FOR
GEEKS
Referencia: https://www.php.net/manual/en/domelement.getelementsbytagnamens.php