La función DOMDocument::getElementsByTagNameNS() es una función incorporada en PHP que se usa para buscar todos los elementos con el nombre de etiqueta dado en el espacio de nombres especificado.
Sintaxis:
DOMNodeList DOMDocument::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 el URI del espacio de nombres de los elementos para hacer coincidir y * coincide con todos los espacios de nombres.
- $localName : especifica el nombre local de los elementos con los que coincidir y * coincide con todos los nombres locales.
Valor devuelto: esta función devuelve una DOMNodeList de todos los elementos con un nombre local determinado y un URI de espacio de nombres.
Los programas dados a continuación ilustran la función DOMDocument::getElementsByTagNameNS() en PHP:
Programa 1: en este ejemplo, obtendremos el nombre local y el prefijo de los elementos con un espacio de nombres específico.
PHP
<?php // Create an XML $xml = <<<EOD <?xml version="1.0" ?> <!-- this is the namespace --> <chapter xmlns:xi="my_namespace"> <title>Books of the other guy..</title> <para> <xi:include> <xi:fallback> </xi:fallback> </xi:include> </para> </chapter> EOD; $dom = new DOMDocument; // Load the XML string defined above $dom->loadXML($xml); // Use getElementsByTagName to get // the elements from xml foreach ($dom->getElementsByTagNameNS( 'my_namespace', '*') as $element) { echo '<b>Local name:</b> ', $element->localName, ', <b>Prefix: </b>', $element->prefix, "<br>"; } ?>
Producción:
Local name: include, Prefix: xi Local name: fallback, Prefix: xi
Programa 2: en este ejemplo, obtendremos la cantidad de elementos de un determinado espacio de nombres.
PHP
<?php // Create an XML $xml = <<<EOD <?xml version="1.0" ?> <!-- this is the namespace --> <chapter xmlns:xi="my_namespace"> <title>Books of the other guy..</title> <para> <xi:include> <!-- 1st --> <xi:fallback> <!-- 2nd --> </xi:fallback> </xi:include> <xi:include> <!-- 3rd --> <xi:fallback> <!-- 4th --> </xi:fallback> </xi:include> </para> </chapter> EOD; $dom = new DOMDocument(); // Load the XML string defined above $dom->loadXML($xml); // It will count all occurrence of // xi inside my_namespace $elements = $dom->getElementsByTagNameNS( 'my_namespace', '*'); print_r($elements->length); ?>
Producción:
4
Referencia: https://www.php.net/manual/en/domdocument.getelementsbytagnamens.php