• Artigos
  • Projetos
  • Lista
  • Docs
  • Enviar Artigo
  • ?

XML com namespaces

18/04/2010  Pablo DallOglio  Ler e Comentar

Neste exemplo iremos demonstrar como acessar o conteúdo de um documento XML quando este utiliza NameSpaces.
Nos casos em que o documento XML utiliza NameSpaces, é necessário utilizar o NameSpace para acessar seu conteúdo. Neste exemplo, temos um documento que utiliza o NameSpace "UML". Antes de mais nada, precisamos obter os NameSpaces utilizados pelo documento por meio do método getNameSpaces(TRUE). Este método irá retornar um vetor de NameSpaces. A partir do NameSpace, podemos acessar o método children(). O método children() retorna todos os nodos filhos de um elemento. Neste caso em específico, estamos obtendo todos os nodos filhos de "XMI.content" do NameSpace "UML". Sem utilizar o NameSpace nem um var_dump() exibe adequadamente a estrutura do XML. Segue o exemplo.



<?php
$XML 
= "<?xml version = '1.0' encoding = 'UTF-8' ?>
<XMI xmi.version = '1.2' xmlns:UML = 'org.omg.xmi.namespace.UML' timestamp = 'Mon Jun 22 20:34:01 BRT 2009'>
  <XMI.header>
    <XMI.documentation>
      <XMI.exporter>ArgoUML (using Netbeans XMI Writer version 1.0)</XMI.exporter>
      <XMI.exporterVersion>0.28(6) revised on $Date: 2007-05-12 08:08:08 +0200 (Sat, 12 May 2007) $ </XMI.exporterVersion>
    </XMI.documentation>
  </XMI.header>
  <XMI.content>
    <UML:Model name = 'ModeloSemNome' isSpecification = 'false'/>
  </XMI.content>
</XMI>"
;

$xml = simplexml_load_string($XML);
$nameSpaces = $xml->getNameSpaces(TRUE);
var_dump($nameSpaces);

$a=$xml->{"XMI.content"};
$children = $a->children($nameSpaces['UML']);
var_dump($children->Model->attributes());
?>




Comentários

 Adicionar Comentário
 login
 Senha
 Título
 Comentário

Livros



    Outros

    Busque conteúdo no site
    Participe de nosso grupo no google

    [Página do grupo]  [Arquivo do grupo]

    Google

    Parceiros

 
Designed by Wolfgang Bartelme Designed by Wolfgang Bartelme

© 2006 Wordpress Themes | Theme (Not so) Fresh
XHTML CSS RSS