César Augusto Pessôa
Sumário
 Objetivos
 O que são folhas de estilo
 O que é XSL
 Apresentando os dados de um XML
 Dúvidas
Objetivos
 Apresentar aos alunos o conceito de folhas
de estilo e formatação dinâmica de dados.
 Demonstrar as possibilidades formatação
com a utilização HTML e métodos em XSLT.
O que é XSL
 eXtensible Stylesheet Language:
 Foi criada para permitir a aplicação de folhas de
estilos a documentos XML. Ela portanto, ao contrário
do XML, não carrega informações sobre os dados,
mas sim, sobre sua apresentação.
 eXtensible Stylesheet Language Transformer:
 É a linguagem de programação utilizada para
transformar um documento XML em outro tipo de
documento baseado em uma linguagem de
programação para web (XHTML ou HTML5 por
exemplo).
Considere o arquivo XML abaixo
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="combustivel.xsl"?>
<abastecimentos>
<abastecimento id="1">
<dia>22</dia>
<mes>05</mes>
<ano>2007</ano>
</abastecimento>
<abastecimento id="2">
<dia>10</dia>
<mes>06</mes>
<ano>2008</ano>
</abastecimento>
<abastecimento id="3">
<dia>10</dia>
<mes>06</mes>
<ano>2008</ano>
</abastecimento>
</abastecimentos>
Exemplo de arquivo XSL
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<html>
<body>
<h1>Abastecimentos</h1>
<table border="1">
<tr bgcolor="red">
<th align="left">Dia</th>
<th align="left">Mês</th>
<th align="left">Ano</th>
</tr>
<xsl:for-each select="abastecimentos/abastecimento">
<tr>
<td><xsl:value-of select="dia"/></td>
<td><xsl:value-of select="mes"/></td>
<td><xsl:value-of select="ano"/></td>
</tr>
</xsl:for-each>
</table>
</body>
</html>
</xsl:template>
</xsl:stylesheet>
Cabeçalho padrão do
Arquivo xsl
O template (modelo) será
Aplicado a todo arquivo
Toda TAG aberta deve
ser fechada
Código mesclado
com HTML
Elementos da XSLT
 <xsl:template match=”XPath”>
 Define o caminho para o qual o modelo será
aplicado, a variável XPath deve ser substituída por
este valor. Caso o modelo seja aplicado ao elemento
raiz e todos os seus filhos, utiliza-se o símbolo “/”.
 Lembrando que a TAG xsl:template deve ser fechada
no final do arquivo.
 <xsl:value-of select=”XPath”>
 Indica um elemento (nó) do arquivo XML que deverá
ser extraído e apresentado.
 Dentro desta TAG é definida a forma de
apresentação destes dados, por exemplo utilizando
uma lista ou tabela.
Elementos da XSLT
 xsl:for-each select=”XPath”
 É utilizado para criar loops de repetição, como o
PARA no portugol (VisualG).
 Irá extrair todos os valores dos elementos
xsl:value-of (do inglês valor de).
 Além disso o operador for-each aceita os
seguintes operadores lógicos:
Operador Significado
= Igual a
!= Diferente de
&lt; Menor que
&gt; Maior que
Elementos da XSLT
 Exemplos:
 Igual: extrai somente os elementos que possuem
exatamente um valor pré-definido.
 Não igual: extrai somente os elementos que não
possuem um valor pré-definido.
 Menor que: extrai somente os elementos que
possuem um valor menor que determinada condição.
 Maior que: extrai somente os elementos que
possuem um valor maior que determinada condição.
Elementos da XSLT
 Exemplos:
 Igual: selecionar somente os alunos que
possuem o atributo nome igual a “César”.
 Não igual: selecionar somente os alunos que
possuem o atributo nome diferente de “ “ (vazio).
 Menor que: selecionar somente os alunos com o
atributo idade menor que 18.
 Maior que: selecionar somente os alunos com o
atributo idade maior que 16.
Elementos da XSLT
 <xsl:sort select=”XPath”>
 Deve ser colocado dentro de um elemento for-each.
 Determina a ordenação com que os elementos
devem ser apresentados.
 Exemplo:
<xsl:for-each select=“abastecimentos/abastecimento">
<xsl:sort select=”ano”>
<tr>
<td><xsl:value-of select="dia"/></td>
<td><xsl:value-of select=“mes"/></td>
<td><xsl:value-of select=“ano"/></td>
</tr>
</xsl:for-each>
Elementos da XSLT
 <xsl:IF test=”expressão de teste”>
 Deve ser colocado dentro de um elemento for-each.
 Realiza testes condicionais, equiavele ao SE e ENTÃO.
 Exemplo:
<xsl:for-each select=“abastecimentos/abastecimento">
<xsl:if test=”ano &gt; 2000”>
<tr>
<td><xsl:value-of select="dia"/></td>
<td><xsl:value-of select=“mes"/></td>
<td><xsl:value-of select=“ano"/></td>
</tr>
</xsl:if>
</xsl:for-each>
Elementos da XSLT
 <xsl:choose>, <xsl:when>, <xsl:otherwise>
 São utilizados para realizar diversos testes
condicionais, equivale ao ESCOLHA e CASO.
 Exemplo:
<xsl:choose>
<xsl:when test="expression">
... algum código ...
</xsl:when>
<xsl:otherwise>
... algum código ....
</xsl:otherwise>
</xsl:choose>
Dúvidas?
César Augusto Pessôa
capfg@hotmail.com

02 - Apresentação de dados em XML com XSL e HTML

  • 1.
  • 2.
    Sumário  Objetivos  Oque são folhas de estilo  O que é XSL  Apresentando os dados de um XML  Dúvidas
  • 3.
    Objetivos  Apresentar aosalunos o conceito de folhas de estilo e formatação dinâmica de dados.  Demonstrar as possibilidades formatação com a utilização HTML e métodos em XSLT.
  • 4.
    O que éXSL  eXtensible Stylesheet Language:  Foi criada para permitir a aplicação de folhas de estilos a documentos XML. Ela portanto, ao contrário do XML, não carrega informações sobre os dados, mas sim, sobre sua apresentação.  eXtensible Stylesheet Language Transformer:  É a linguagem de programação utilizada para transformar um documento XML em outro tipo de documento baseado em uma linguagem de programação para web (XHTML ou HTML5 por exemplo).
  • 5.
    Considere o arquivoXML abaixo <?xml version="1.0" encoding="UTF-8"?> <?xml-stylesheet type="text/xsl" href="combustivel.xsl"?> <abastecimentos> <abastecimento id="1"> <dia>22</dia> <mes>05</mes> <ano>2007</ano> </abastecimento> <abastecimento id="2"> <dia>10</dia> <mes>06</mes> <ano>2008</ano> </abastecimento> <abastecimento id="3"> <dia>10</dia> <mes>06</mes> <ano>2008</ano> </abastecimento> </abastecimentos>
  • 6.
    Exemplo de arquivoXSL <?xml version="1.0" encoding="UTF-8"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:template match="/"> <html> <body> <h1>Abastecimentos</h1> <table border="1"> <tr bgcolor="red"> <th align="left">Dia</th> <th align="left">Mês</th> <th align="left">Ano</th> </tr> <xsl:for-each select="abastecimentos/abastecimento"> <tr> <td><xsl:value-of select="dia"/></td> <td><xsl:value-of select="mes"/></td> <td><xsl:value-of select="ano"/></td> </tr> </xsl:for-each> </table> </body> </html> </xsl:template> </xsl:stylesheet> Cabeçalho padrão do Arquivo xsl O template (modelo) será Aplicado a todo arquivo Toda TAG aberta deve ser fechada Código mesclado com HTML
  • 7.
    Elementos da XSLT <xsl:template match=”XPath”>  Define o caminho para o qual o modelo será aplicado, a variável XPath deve ser substituída por este valor. Caso o modelo seja aplicado ao elemento raiz e todos os seus filhos, utiliza-se o símbolo “/”.  Lembrando que a TAG xsl:template deve ser fechada no final do arquivo.  <xsl:value-of select=”XPath”>  Indica um elemento (nó) do arquivo XML que deverá ser extraído e apresentado.  Dentro desta TAG é definida a forma de apresentação destes dados, por exemplo utilizando uma lista ou tabela.
  • 8.
    Elementos da XSLT xsl:for-each select=”XPath”  É utilizado para criar loops de repetição, como o PARA no portugol (VisualG).  Irá extrair todos os valores dos elementos xsl:value-of (do inglês valor de).  Além disso o operador for-each aceita os seguintes operadores lógicos: Operador Significado = Igual a != Diferente de &lt; Menor que &gt; Maior que
  • 9.
    Elementos da XSLT Exemplos:  Igual: extrai somente os elementos que possuem exatamente um valor pré-definido.  Não igual: extrai somente os elementos que não possuem um valor pré-definido.  Menor que: extrai somente os elementos que possuem um valor menor que determinada condição.  Maior que: extrai somente os elementos que possuem um valor maior que determinada condição.
  • 10.
    Elementos da XSLT Exemplos:  Igual: selecionar somente os alunos que possuem o atributo nome igual a “César”.  Não igual: selecionar somente os alunos que possuem o atributo nome diferente de “ “ (vazio).  Menor que: selecionar somente os alunos com o atributo idade menor que 18.  Maior que: selecionar somente os alunos com o atributo idade maior que 16.
  • 11.
    Elementos da XSLT <xsl:sort select=”XPath”>  Deve ser colocado dentro de um elemento for-each.  Determina a ordenação com que os elementos devem ser apresentados.  Exemplo: <xsl:for-each select=“abastecimentos/abastecimento"> <xsl:sort select=”ano”> <tr> <td><xsl:value-of select="dia"/></td> <td><xsl:value-of select=“mes"/></td> <td><xsl:value-of select=“ano"/></td> </tr> </xsl:for-each>
  • 12.
    Elementos da XSLT <xsl:IF test=”expressão de teste”>  Deve ser colocado dentro de um elemento for-each.  Realiza testes condicionais, equiavele ao SE e ENTÃO.  Exemplo: <xsl:for-each select=“abastecimentos/abastecimento"> <xsl:if test=”ano &gt; 2000”> <tr> <td><xsl:value-of select="dia"/></td> <td><xsl:value-of select=“mes"/></td> <td><xsl:value-of select=“ano"/></td> </tr> </xsl:if> </xsl:for-each>
  • 13.
    Elementos da XSLT <xsl:choose>, <xsl:when>, <xsl:otherwise>  São utilizados para realizar diversos testes condicionais, equivale ao ESCOLHA e CASO.  Exemplo: <xsl:choose> <xsl:when test="expression"> ... algum código ... </xsl:when> <xsl:otherwise> ... algum código .... </xsl:otherwise> </xsl:choose>
  • 14.
  • 15.