Ulitizando o SIMPLEXML para manipular XML

Sem categoria

O SIMPLEXML e uma extensão do PHP que vem na versão 5, utilizada para manipulação de XML, editar e pegar valores de um arquivo XML, facilmente, sem precisar usar explodes e mais explodes

 Quero ensinar aqui um pouquinho de como se manipular XML. Para você seguir este tutorial você vai precisar ter o PHP5 instalar em sua maquina.

 Primeiramente vamos criar um arquivo XML com o nome de agenda.xml.

 CODE

<?xml version=’1.0′ standalone=’yes’?>
<agenda>
<evento>
  <title>Festa a fantasia</title>
  <characters>
       <character>
              <name>Fernando Junior</name>
              <actor>Rodrigo Junior</actor>
       </character>
       <character>
             <name>Luis Carlos</name>
             <actor>É nois..</actor>
       </character>
  </characters>
  <plot>Consegui pegar este valor!!!</plot>
  <rating type=”valor01″>7</rating>
  <rating type=”valor02″>5</rating>
</evento>
</agenda>

 

Agora chegou a hora de fazer o php., crie um arquivo com o nome de agenda.php

CODE

if (file_exists(‘agenda.xml’)) {
   $xml = simplexml_load_file(‘agenda.xml’);

echo $xml->evento[0]->title;
}else{
   exit(‘Falha ao tentar abrir agenda.xml.’);
}


Agora abra o seu browsers e faça um teste para ver se funciona certinho!


Se imprimiu legal, ele imprimiu o valor de “<title>Festa a fantasia</title>”, não é?
Este e apenas um exemplo simples.

 

 

Como eu vou pegar o valor dos nomes e atores? Esta e boa neh? Mais fácil também.

É mais complicadinho, mas nada mais do que umas palavras a mais. Observe:

CODE

if (file_exists(‘agenda.xml’)) {
   $xml = simplexml_load_file(‘agenda.xml’);

echo $xml->evento[0]->characters->character[0]->name;
}else{
   exit(‘Falha ao tentar abrir agenda.xml.’);
}

 

Teste a página. O que ele imprimiu? ” Fernando Junior “? Certo!! É isso mesmo!
Observe que, para se referir a tal cláusula de mesmo nome no arquivo, usa-se o índice([0]).
Se existisse mais de uma chave chamada agenda, para me referir à segunda chave agenda eu teria que trocar “ agenda [0]” por “ agenda [1]“.
Com character é a mesma coisa. Se você quiser pegar o valor de “<actor>El ActÓr</actor>” você teria que usar:

CODE

if (file_exists(‘agenda.xml’)) {
   $xml = simplexml_load_file(‘agenda.xml’);

echo $xml->evento[0]->characters->character[1]->actor;
}else{
   exit(‘Falha ao tentar abrir agenda.xml.’);
}

 

 

Bom, é isso.
Simples não? E muito mais fácil que explode. 

Abraço galera.

No Comments

Leave a Reply

You must be logged in to post a comment.