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