SimpleXML

XML é uma linguagem de notação, baseada em tags, para mantermos informação de maneira uniforme, flexível, organizada e legível. Simples e descomplicada é o formato ideal para troca de informação entre diferentes sistemas. Exemplos de uso: webservices, RSS, Podcasts, Configuração de sistemas, arquivos de troca de informação simples, etc…

SimpleXML é uma funcionalidade embutida no PHP5, que visa trabalhar, de maneira simples, XML no PHP. Trabalhando numa estrutura de ojetos, é bem fácil trabalhar com ele:
Para começar vamos a um pouco de código:

$sxe = simplexml_load_file(’teste.xml’);

Supondo que teste.xml Seja um xml válido, $sxe receberá uma instância de SimpleXMLElement, referente ao nó raiz do xml; caso contrario receberá false.

Você pode adionar elementos com addChild, e attributos com addAttribute, como a seguir:

$ne = $sxe->addChild(’novo_elemento’);
$ne->addAttribute(’novo_atributo’,'valor_do_novo_atributo’);

Note que addChild retorna uma referência ao novo elemento criado.

A informação no SimpleXML é editada facilmente:

$sxe->elemento[0]->descendente = ‘dado textual do descendente’;
$sxe->elemento[0][’atributo_do_elemento’] = ‘novo valor do atributo’;

Os atributos de SimpleXMLElement são os elementos descendentes da tag raiz do xml, respeitando sua hierarquia. Esses elementos podem ser acessados via Array de índíce numérico nos atributos do objeto. Agora falando dos atributos do xml: estes são aceesados por arrays de índice textual.
Para exportar as edições feitas para o xml, usa-se o método asXML:

$sxe->asXML();

Simples não? O SimpleXML ainda permite importação de Elementos DOM do php, além de pesquisas com XPath. Só peca por não conte métodos de remoção de elementos.
SimpleXML foi tema de minha apresentação na última PHP Conference Brasil ‘06. Você pode ver a apresentação em Apresentação SimpleXML – PHPConf ‘07

This entry was posted in php by Duodraco. Bookmark the permalink.

About Duodraco

Sou Anderson Casimiro, também conhecido como Duodraco. Trabalho com Desenvolvimento Web desde 2002; desde então tive a oportunidade de trabalhar com grandes amigos e aprender bastante. Como já se deve ter percebido meu foco de atuação é PHP, embora eu brinque com Java e C++/Qt nas horas vagas, além do bom e velho Javascript, e dos sempre amigos Mysql, Oracle, sqLite e Postgres. Sou usuário Linux / OpenSuse / KDE apesar de já ter utilizado o Janelas e o OS X. Bom, mas não falemos de passado. Sou um dos coordenadores do PHPSP, junto ao Augusto Pascutti e Rafael Dohms. Atuo como Analista, Desenvolvedor e Scrum Master na Arizona. Sou Engenheiro Certificado Zend (ZCE – Zend Certified Engineer – 2007), Certified Scrum Master e entusiasta do uso de PHP, Linux, KDE e Software Livre em geral.