Manipulando XML com a SimpleXML
Quando eu começei a trabalhar com XML, principalmente em aplicações ajax, eu custumava fazer XML na mão, como se fossem string’s. Funcionavam, é verdade, mas não era uma boa solução, e na epoca eu pensava que a SimpleXML só servia para ler xml. Ledo engano.
A SimpleXML é bem mais poderosa do que eu imaginava, ela pode manipular XML da forma que você precisar, seja apenas para leitura ou para alteração.
Vou mostrar algum codigo pra provar que a SimpleXML é realmente muito simples.
Instanciando um objeto para gerar um XML:
Ou entao você pode carregar um arquivo XML:
A partir disso você pode manipular o XML como quiser. Vamos supor que você queira adicionar nós com atributos. Dois metodos são importantes agora: addChild e addAttribute. Um exemplo do metodo addChild:
Isso geraria um xml assim:
<root>
<database></database>
</root>
Agora suponhamos que queremos adicionar um novo nó dentro de database chamado connection com varios atributos:
$xml->database->connection->addAttribute(‘server’, ‘localhost’);
$xml->database->connection->addAttribute(‘user’, ‘root’);
$xml->database->connection->addAttribute(‘pass’, ’123′);
$xml->database->connection->addAttribute(‘schema’, ‘tabela’);
Com os codigos acima nosso XML ficaria assim:
<root>
<database>
<connection server="localhost" user="root" pass="123" schema="tabela" />
</database>
</root>
Viu como é simples manipular XML com a SimpleXML?
Ah, se você precisar apagar um nó é ainda mais simples, basta usar o velho e conhecido unset, assim:
E se você precisar salvar essa XML em arquivo é só usar a função file_put_contents, assim:
Então é isso, qualquer duvida sobre manipulação de XML posta ae nos comentarios.
Referencias:
Manual do PHP: http://br.php.net/manual/en/ref.simplexml.php
Realmente é muito simples. Eu estava pesquisando formas de ler com XMLHttpRequest. Mas depois de ver isso mudei de idéia, vou usar o SimpleXML mesmo.. Vlw
é muito simples mesmo …. e com acentuação e cdata como fica ?
Cara, parabens! Ta muito bem explicado! Tem muita gente ai na internet criando tempestade num copo dagua com simplexml.