Transformação de arquivo XML com XSLT usando PHP

16/12/2005 09:45:00

Autor: Rondinely S. de Almeida


Serviços para Webmasters

Este artigo mostrará como transformar um documento XML com uma folha de estilo XSLT usando PHP. Será mostrado como criar o documento XML e a folha de estilo XSLT. Daremos uma breve descrição dos elementos do documento XML e do processo de criação do arquivo de formatação XSL. No arquivo PHP usaremos uma técnica que permitirá o uso deste script tando nas versões do PHP 5 ou superior, como nas versões anteriores do PHP. Para o PHP 5 é necessário o suporte a LIBXSLT , para mais informações acesse http://xmlsoft.org/XSLT/. Versão anteriores do PHP utilizam-se das bibliotecas Sablotron e expat, ambas podem ser encontradas em http://www.gingerall.com/ ou, no caso de suporte a DOM XML a biblioteca GNOME XML, a libxslt e da EXSLT enhancements encontrada em http://www.exslt.org/ . Provavelmente o seu PHP do seu host já estará configurado com uma destas opções e o nosso Script funcionará sem problemas.

No nosso exemplo trataremos de um relatório de estoque de uma locadora. Este relatório foi exportado para um arquivo XML, o método utilizado para a exportação não faz parte do escopo deste artigo.

Vamos ao primeiro passo, criar o documento XML. O arquivo completo segue abaixo:

locadora.xml

Não deixe de ver também:
<?xml version="1.0" encoding="ISO-8859-1"?>
<locadora>
<DVD>
<categoria>Ação/Aventura</categoria>
<titulo>Star Wars III - A Vingança dos Sith</titulo>
<diretor>George Lucas</diretor>
<audio>inglês</audio>
<audio>espanhol</audio>
<audio>português</audio>
<legenda>português</legenda>
<legenda>inglês</legenda>
<legenda>espanhol</legenda>
<ano>2005</ano>
<tempo tipo="min">139</tempo>
<censura>12</censura>
<formato>Widescreen</formato>
<preco>6.00</preco>
<quantidade>5</quantidade>
</DVD>
<DVD>
<categoria>Ação/Aventura</categoria>
<titulo>Gerra dos Mundos</titulo>
<diretor>Steven Spielberg</diretor>
<audio>inglês</audio>
<audio>português</audio>
<legenda>português</legenda>
<legenda>inglês</legenda>
<ano>2005</ano>
<tempo tipo="min">116</tempo>
<censura>14</censura>
<formato>Widescreen</formato>
<preco>6.00</preco>
<quantidade>3</quantidade>
</DVD>
<DVD>
<categoria>Comédia</categoria>
<titulo>SideWays - Entre umas e outras</titulo>
<diretor>Alexander Payne</diretor>
<audio>inglês</audio>
<audio>português</audio>
<legenda>português</legenda>
<legenda>inglês</legenda>
<legenda>espanhol</legenda>
<ano>2005</ano>
<tempo tipo="min">126</tempo>
<censura>16</censura>
<formato>Widescreen</formato>
<preco>4.50</preco>
<quantidade>7</quantidade>
</DVD>
<DVD>
<categoria>Drama</categoria>
<titulo>Menina de Ouro</titulo>
<diretor>Clint Eastwood</diretor>
<audio>inglês</audio>
<audio>português</audio>
<legenda>português</legenda>
<legenda>inglês</legenda>
<ano>2005</ano>
<tempo tipo="min">137</tempo>
<censura>livre</censura>
<formato>Widescreen</formato>
<preco>5.50</preco>
<quantidade>2</quantidade>
</DVD>
</locadora>

Todo documento XML deve começar com uma declaração similar a esta: <?xml version="1.0" encoding="ISO-8859-1"?>. Esta declaração avisa ao navegador, ou outro programa qualquer que for processar o arquivo, que se trata de um documento XML, da versão 1.0 e codigicado com o padrão ISO-8859-1 (aceita acentos).

Após declarado o tipo do arquivo temos que definir um elemento ROOT, ou elemento principal. Cada documento XML deve possui um, e apenas um elemento principal. No nosso caso este elemento será identificado como <locadora> já que vamos manipular um relatório de DVDs disponíveis para locação.

Agora que já temos o elemento principal vamos definir um elemento que represente cada DVD disponível para locação, este elemento será identificado por <DVD>.

<DVD>
<categoria>Drama</categoria>
<titulo>Menina de Ouro</titulo>
<diretor>Clint Eastwood</diretor>
<audio>inglês</audio>
<audio>português</audio>
<legenda>inglês</legenda>
<legenda>português</legenda>
<ano>2005</ano>
<tempo tipo="min">137</tempo>
<censura>livre</censura>
<formato>Widescreen</formato>
<preco>5.50</preco>
<quantidade>2</quantidade>
</DVD>

Dentro de cada elemento DVD devemos ter informações sobre o filme contido em cada DVD, para isto criamos vários elementos para armazenar informações como: categoria, título, diretor, audio disponível, legenda disponível, ano, tempo, censura, formato da tela, preço e quantidade em estoque.

Perceba que podemos ter mais de um elemento do mesmo tipo, como é o caso do elemento <legenda>, que no primeiro DVD possuí duas instâncias, uma legenda em 'inglês' e outra em 'português'.

No nosso pequeno exemplo temos quatro filmes diferentes e por isto criamos quatro elementos <DVD> no documento XML.

Artigos relacionados

>> Inicio <<
© Copyright hospedia.com.br - 2005
Todos os direitos reservados.
Seu Ponto de Partida na Internet
Receitas de Bolos
Lyrics
centro-top