PHP - Função SimpleXMLElement :: getDocNamespaces ()

Definição e Uso

XML é uma linguagem de marcação para compartilhar os dados na web, XML é tanto para leitura humana quanto para máquina. A classe SimpleXMLElement representa um documento XML em PHP.

o SimpleXMLElement::getDocNamespaces() função recupera e retorna os namespaces declarados em um documento.

Sintaxe

SimpleXMLElement::getDocNamespaces([$recursive, $from_root]);

Parâmetros

Sr. Não Parâmetro e Descrição
1

recursive (Optional)

Este é um valor booleano se passado como TRUE, esta função retorna namespaces de nós pais e filhos.

2

from_root (Optional)

Este é um valor booleano se passado como TRUE, esta função verifica os namespaces em um nó filho (em vez do nó raiz).

Valores Retornados

Esta função retorna um array contendo os namespaces.

Versão PHP

Esta função foi introduzida pela primeira vez no PHP Versão 5 e funciona em todas as versões posteriores.

Exemplo

O exemplo a seguir demonstra o uso da função SimpleXMLElement :: getDocNamespaces ().

<html>
   <head>
      <body>
         <?php
            $str="<?xml version='1.0' standalone='yes'?>
            <Tutorial xmlns:p='http://test.org/ns'>
               <Name>JavaFX</Name>
               <Pages>535</Pages>
               <Author>Krishna</Author>
               <Version>11</Version>
            </Tutorial>";
            $xml = new SimpleXMLElement($str);
            $result = $xml->getDocNamespaces();
            print_r($result);	  
         ?>      
      </body>
   </head>   
</html>

Isso produzirá o seguinte resultado -

JavaFX 535 Krishna 11 600

SimpleXMLElement Object ( 
   [@attributes] => Array ( [type] => test ) 
   [Name] => JavaFX [Pages] => 535 
   [Author] => Krishna [Version] => 11 
   [Tutorial] => SimpleXMLElement Object 
   ( [Price] => 600 ) 
)

Exemplo

A seguir está um exemplo desta função com parâmetros opcionais -

<html>
   <head>
      <body>
         <?php
            $str="<Tutorial xmlns:t='http://example.org/ns' xmlns:test='http://demo.com/test'>
               <t:Name test:ns='a'>JavaFX</t:Name>
               <t:Pages test:ns='b'>535</t:Pages>
               <t:Author test:ns='c'>Krishna</t:Author>
               <t:Version test:ns='d'>11</t:Version>
            </Tutorial>"; 
            $xml = new SimpleXMLElement($str);
            $result = $xml->getDocNamespaces(TRUE, TRUE);
            var_dump($result);	 
         ?>      
      </body>
   </head>   
</html>

Isso produzirá a seguinte saída -

array(2) { 
   ["t"]=> string(21) "http://example.org/ns" 
   ["test"]=> string(20) "http://demo.com/test" 
}